Flutter应用使用aws_s3_upload_lite上传图片至AWS S3返回null且图片未存储的问题求助
Flutter应用使用aws_s3_upload_lite上传图片至AWS S3返回null且图片未存储的问题求助
我目前在开发一个Flutter应用,流程是用face_camera包捕获图片,再通过aws_s3_upload_lite包将图片上传到AWS S3。但遇到了一个棘手的问题:上传结果始终返回null,图片也完全没有存入我的S3桶中,想请教大家帮忙排查原因。
以下是我的上传代码:
Future<void> uploadToS3(File file) async { const accessKey = ''; const secretKey = ''; const region = ''; const bucket = ''; final filename = '${DateTime.now().millisecondsSinceEpoch}.jpg'; try { final result = await AwsS3.uploadFile( accessKey: accessKey, secretKey: secretKey, file: file, bucket: bucket, region: region, destDir: '', filename: filename, contentType: 'image/jpg', ); final url = 'https://$bucket.s3.$region.amazonaws.com/$filename'; print('result $result'); print('url $url'); } catch (e) { print('❌ Upload failed: $e'); } }
运行后result一直输出null,S3桶里也完全没有新增的图片。
我已经排查过的点:
- S3桶确实存在,且设置为公开可访问状态
- 桶的「阻止公共访问」功能已完全关闭
- 因为没有使用文件夹结构,所以
destDir设为空字符串 - 本地的图片文件不为空,已经在设备上正确保存
- 所用的IAM用户拥有完整的S3操作权限(包含
s3:PutObject等核心权限) - 尝试过
image/jpeg和image/jpg两种Content-Type配置
依赖与环境信息:
aws_s3_upload_lite: ^1.0.2face_camera: ^1.0.2- Flutter: 3.22.1(稳定版)
- 运行平台:Android 13
想请教各位,为什么我的上传会返回null,图片也无法成功保存到S3桶中呢?
内容来源于stack exchange
相关产品推荐
相关产品推荐

