我将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.!





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到"The OSS Access Key Id you provided does not exist in our records."这个错误,通常意味着您使用的AccessKeyId在阿里云OSS系统中未被找到,这可能是由以下几个原因造成的:
AccessKey信息错误:请检查您使用的LTAIcnKbMJEgRHD8和8e5qbHcW5RFBkd8HtWjDpnm3EclJIu是否准确无误。确保没有输入错误,包括但不限于大小写、前导或尾随空格等。
STS Token过期:如果使用的是STS临时凭证,请确认该STS Token是否已经过期。STS Token具有有效时间限制,超过这个时间后需要重新获取。
权限问题:确保您使用的AccessKey拥有对指定Bucket进行操作的权限。如果使用的是主账号AccessKey,一般不会有这个问题,但如果是RAM用户生成的AccessKey,请检查RAM用户的策略设置是否正确授权。
环境配置问题:确认您的应用运行环境(如开发、测试、生产环境)与您预期使用的AccessKey匹配。有时候开发者可能不小心混淆了不同环境的密钥。
Endpoint问题:请确保您设置的endpoint是正确的,它应该与您的Bucket所在的地域相匹配。例如,如果您的Bucket位于杭州,那么Endpoint应该是oss-cn-hangzhou.aliyuncs.com。
解决步骤建议:
如果以上步骤都确认无误,但问题依旧存在,建议直接在阿里云控制台创建一个新的RAM用户,并为其分配适当的OSS访问策略,然后使用新生成的AccessKey和Secret尝试,以排除原有密钥可能存在的未知问题。