或者如何通过 Flutter Amplify 将图像上传到具有公共访问权限的 s3?
在我当前的颤振项目中,我无法在使用放大将文件上传到 S3 时传递 ACL:public-read 属性。
因此,每当我将新文件上传到 s3 时,我都需要手动将其公开。所以我只想为每个人上传一个具有公共读取权限的新文件。
我为 Javascript 项目找到了一些解决方案,但在 Flutter 项目中没有。
下面是一个方法,我用来上传。
Future<String> uploadFile(String fileName, File local) async {
try {
Map<String, String> metadata = <String, String>{};
metadata['name'] = 'filename';
metadata['desc'] = 'A file';
S3UploadFileOptions options = S3UploadFileOptions(accessLevel: StorageAccessLevel.guest, metadata: metadata);
UploadFileResult result = await Amplify.Storage.uploadFile(key: fileName, local: local, options: options);
return result.key;
} catch (e) {
print('UploadFile Err: ' + e.toString());
}
return null;
}