You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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.2
  • face_camera: ^1.0.2
  • Flutter: 3.22.1(稳定版)
  • 运行平台:Android 13

想请教各位,为什么我的上传会返回null,图片也无法成功保存到S3桶中呢?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 10:52:59