如何在Flutter中使用amplify_flutter上传文件至不同AWS S3存储桶?
如何在Flutter Amplify中新增S3存储桶并指定上传目标
一、创建照片专用的S3存储桶
直接用Amplify CLI新增存储桶最省心,它会自动更新配置文件:
- 打开终端,在项目根目录运行
amplify add storage - 选择 Content (Images, audio, video, etc.) 作为存储类型
- 给新存储桶起一个全局唯一的名称(比如
my-app-photos-bucket) - 配置权限:根据需求选择允许上传、下载等操作(比如针对照片场景,选允许认证用户上传和下载)
- 最后运行
amplify push完成部署,此时你的amplifyconfiguration.dart会自动新增这个存储桶的配置信息
二、上传文件时指定目标存储桶
在调用uploadFile方法时,通过options参数指定目标存储桶即可,无需修改默认配置:
Amplify.Storage.uploadFile( local: photoFile, // 你的照片文件对象 key: 'user-photos/avatar.jpg', // 存储在S3中的键路径 options: const StorageUploadFileOptions( bucket: 'my-app-photos-bucket', // 替换成你刚创建的照片存储桶名称 ), onProgress: (TransferProgress progress) { // 可选:处理上传进度 }, );
注意事项
- 存储桶名称必须在全球AWS S3中唯一,创建时如果提示重复,换个名字就行
amplify push完成后,记得重启你的Flutter应用,确保新配置生效- 权限配置要匹配业务需求,比如如果允许未认证用户上传,要在CLI配置时选择对应的选项
内容的提问来源于stack exchange,提问作者sm-sayedi
相关产品推荐
相关产品推荐

