【发布时间】:2017-02-22 12:42:09
【问题描述】:
在我的 Android 活动中使用以下代码:
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(),
"eu-central-1:XXXXXXXXXXXXXXXXXXXXX",
Regions.EU_CENTRAL_1
);
AmazonS3 s3 = new AmazonS3Client(credentialsProvider);
TransferUtility transferUtility = new TransferUtility(s3, getApplicationContext());
File file= new File("/storage/extSdCard/Sweee/app/src/main/res/mipmap-xxhdpi/ic_launcher.png");
TransferObserver observer = transferUtility.upload(
"aaa.bbb",
"test"+file.getName(),
file
);
收到错误:上传时出错:1
com.amazonaws.services.s3.model.AmazonS3Exception: 你的存储桶 尝试访问必须使用指定的端点解决
【问题讨论】:
-
您确定您的存储桶是在
eu-central-1区域创建的吗? -
这就是为什么我在代码中提到了身份标识前缀。看看..
-
poolid is eu-central-1:XXXXXXXXXXXXXXXXXXXXX 表示区域对吗?
-
CognitoCachingCredentialsProvider构造函数中的region是联系 Cognito Identity 时使用的区域。为了确保AmazonS3Client使用正确的区域而不是默认区域,如果您尝试像s3.setEndpoint("s3.eu-central-1.amazonaws.com");那样显式设置它会发生什么(在实例化TransferUtility之前)? -
@Khalid T 感谢那部分代码是必不可少的
标签: android amazon-web-services amazon-s3