2014-12-02 34 views
2

我正在试图按照教程从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%已上载,实际上我的文件不显示为预期目标水桶。任何人都有任何线索为什么文件没有按照预期上传?

回答

4

有可能是某种错误,你可以打开请求日志记录,看看你是否看到日志中的任何响应错误?

亚行外壳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

+0

感谢您的答案。日志记录显示了错误,我在凭证提供程序中将未经身份验证的arn设置为null。我认为这很好,因为我没有启用未经认证的用户。我改变了这一点,它的工作。有什么奇怪的是,之后,我回去重新尝试了空值,现在它也在工作!所有这些都让我感到困惑,但至少现在它正在工作,所以谢谢 – ethan123 2014-12-02 09:00:24

相关问题