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

Android Kotlin应用上传图片至Wasabi存储桶时遇InvalidAccessKeyId错误求助

Android Kotlin应用上传图片至Wasabi存储桶时遇InvalidAccessKeyId错误求助

嗨,碰到这个错误确实挺闹心的!你说在Android Kotlin应用里往Wasabi存储桶传图片时,一直碰到这个报错:

com.amazonaws.services.s3.model.AmazonS3Exception:  The AWS Access Key Id you provided does not exist in our records.  (Status Code: 403; Error Code: InvalidAccessKeyId; Request ID: 2FJX229HVHCPKAB3)

看你已经确认了Access和Secret密钥在Wasabi控制台里是有效的,那咱们一步步排查可能的隐藏问题:

  • 先核对代码里的密钥配置
    有没有可能复制密钥时手滑多了空格、少了字符,或者大小写搞错了?Wasabi的密钥是严格区分大小写的,建议你把代码里的密钥和控制台里的内容逐字符对比一遍。如果是用gradle.properties或者本地配置文件存密钥,还要确认配置项的名称没写错,比如别把AWS_SECRET_KEY写成了AWS_SECRET_ACCESS_KEY(虽然大多是兼容的,但还是要仔细)。

  • 确认区域和端点配置是否匹配
    Wasabi的存储桶是和区域绑定的,要是代码里指定的区域和你的桶所在区域不匹配,也会触发类似的权限错误。先去Wasabi控制台看看你的桶在哪个区域,然后对应设置正确的端点:比如us-east-1的端点是s3.wasabisys.com,us-west-1是s3.us-west-1.wasabisys.com。
    举个配置客户端的例子,确保你没默认用AWS的端点:

    val s3Client = AmazonS3ClientBuilder.standard()
        .withCredentials(BasicAWSCredentials(yourAccessKey, yourSecretKey))
        .withEndpointConfiguration(
            EndpointConfiguration(
                "s3.wasabisys.com", // 替换成你的桶对应的端点
                "us-east-1" // 替换成你的桶所在区域
            )
        )
        .build()
    
  • 检查密钥对应的用户权限
    虽然密钥本身有效,但要确保这个密钥所属的Wasabi IAM用户有上传文件到目标桶的权限。去控制台的IAM用户页面,查看该用户的权限策略,确认里面包含s3:PutObject权限,并且资源指定到了你的目标桶(比如arn:aws:s3:::你的桶名/*)。

  • 排查缓存或旧配置残留
    有没有可能应用缓存了旧的密钥?比如之前用过其他密钥,现在更新了但没清缓存?试试卸载应用重新安装,或者清除应用的存储缓存后再测试。如果是用SharedPreferences存密钥,也要检查读取逻辑是否正确,有没有读到旧的内容。

  • 检查桶的CORS配置(如果是直传)
    要是你的应用是直接和Wasabi存储桶交互上传,而不是通过后端中转,那得确认桶的CORS规则允许你的应用来源,并且放开了PUT、POST这些上传需要的HTTP方法。

备注:内容来源于stack exchange,提问作者Player91

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:34:31