开发者社区 问答 正文

OSS服务器上传图片

我将github上的应用代码下载下来,实例demo地址https://github.com/aliyun/aliyun-oss-android-sdk?spm=a2c4g.11186623.2.9.VgBQlR,然后按照github上的说明采用STS认证模式来初始化移动OSSCLITEN代码如下

public OssService initOSS(String endpoint, String bucket, UIDisplayer displayer) {
    OSSCredentialProvider credentialProvider;
     credentialProvider = new OSSStsTokenCredentialProvider("LTAIcnKbMJEgRHD8", "8e5qbHcW5RFBkd8HtWjDpnm3EclJIu", "pdafile");
    String editBucketName = ((EditText) findViewById(R.id.bucketname)).getText().toString();
    if (TextUtils.isEmpty(editBucketName)) {
        editBucketName = bucket;
        ((EditText) findViewById(R.id.bucketname)).setText(bucket);
    }
    ClientConfiguration conf = new ClientConfiguration();
    conf.setConnectionTimeout(15 * 1000); // 连接超时,默认15秒
    conf.setSocketTimeout(15 * 1000); // socket超时,默认15秒
    conf.setMaxConcurrentRequest(5); // 最大并发请求书,默认5个
    conf.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次
    OSSLog.enableLog();
    OSS oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider, conf);
    return new OssService(oss, editBucketName, displayer);

}

然后上传图片报错,报错The OSS Access Key Id you provided does not exist in our records.!_0LU_OHRSDPAY4KJQD_I_COIS_HXHP9A_F_0_M_A_I5_VQ6_399B6_054JI_S_H_K_3TAV_M_M_L4ZXE_FZ1X_80NHCRLE___A1QT_AZ_6C_6H60VSMTJ1W_3_VG

展开
收起
张勇-love 2018-05-04 10:56:26 5186 分享 版权
阿里云 AI 助理回答

遇到"The OSS Access Key Id you provided does not exist in our records."这个错误,通常意味着您使用的AccessKeyId在阿里云OSS系统中未被找到,这可能是由以下几个原因造成的:

  1. AccessKey信息错误:请检查您使用的LTAIcnKbMJEgRHD88e5qbHcW5RFBkd8HtWjDpnm3EclJIu是否准确无误。确保没有输入错误,包括但不限于大小写、前导或尾随空格等。

  2. STS Token过期:如果使用的是STS临时凭证,请确认该STS Token是否已经过期。STS Token具有有效时间限制,超过这个时间后需要重新获取。

  3. 权限问题:确保您使用的AccessKey拥有对指定Bucket进行操作的权限。如果使用的是主账号AccessKey,一般不会有这个问题,但如果是RAM用户生成的AccessKey,请检查RAM用户的策略设置是否正确授权。

  4. 环境配置问题:确认您的应用运行环境(如开发、测试、生产环境)与您预期使用的AccessKey匹配。有时候开发者可能不小心混淆了不同环境的密钥。

  5. Endpoint问题:请确保您设置的endpoint是正确的,它应该与您的Bucket所在的地域相匹配。例如,如果您的Bucket位于杭州,那么Endpoint应该是oss-cn-hangzhou.aliyuncs.com

解决步骤建议:

  • 重新验证AccessKey信息:登录阿里云控制台,检查并复制新的AccessKeyId和AccessKeySecret,替换到代码中。
  • 检查STS Token:如果是通过STS服务获取的临时凭证,请确保获取流程正确,并且在有效期内使用。
  • 检查RAM用户权限:如果是RAM用户,进入RAM管理控制台,检查该用户的策略是否赋予了足够的OSS访问权限。
  • 核对Endpoint:确认Endpoint是否正确指向您的Bucket所在地域。
  • 查看日志:启用OSS SDK的日志输出,查看更详细的错误信息,可能会提供额外的线索。

如果以上步骤都确认无误,但问题依旧存在,建议直接在阿里云控制台创建一个新的RAM用户,并为其分配适当的OSS访问策略,然后使用新生成的AccessKey和Secret尝试,以排除原有密钥可能存在的未知问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答