TransferManager上传并没有实际上传文件
问题描述:
我正在试图按照教程从Android SDK上传文件到S3,如here所述。在成功验证了我能够创建CognitoCachingCredentialsProvider之后,我尝试从我的设备执行上传到我已经设置的S3存储桶的上传。我有以下代码尝试这样的:TransferManager上传并没有实际上传文件
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
context, identityProvider, null, {autARN});
Log.d("LogTag", "my ID is " + credentialsProvider.getIdentityId()); //shows me the IdentityId; credentialsProvider is valid
TransferManager transferManager = new TransferManager(credentialsProvider);
File file = new File("/storage/sdcard0/Download");
Upload upload = transferManager.upload({Bucket Name}, "test.txt", file);
while (upload.isDone() == false) {
System.out.println(upload.getProgress().getPercentTransferred() + "%");
}
while循环让我发现,我的文件0%已上载,实际上我的文件不显示为预期目标水桶。任何人都有任何线索为什么文件没有按照预期上传?
答
有可能是某种错误,你可以打开请求日志记录,看看你是否看到日志中的任何响应错误?
亚行外壳setprop log.tag.com.amazonaws.request DEBUG
并在代码:
java.util.logging.Logger.getLogger( “com.amazonaws.request”)setLevel (java.util.logging.Level.FINEST);
要仔细检查的一件事是,您正确设置了您的S3存储桶权限:http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/s3transfermanager.html#set-permissions-on-the-bucket
感谢您的答案。日志记录显示了错误,我在凭证提供程序中将未经身份验证的arn设置为null。我认为这很好,因为我没有启用未经认证的用户。我改变了这一点,它的工作。有什么奇怪的是,之后,我回去重新尝试了空值,现在它也在工作!所有这些都让我感到困惑,但至少现在它正在工作,所以谢谢 – ethan123 2014-12-02 09:00:24