TransferManager上传实际上并不上传文件

时间:2014-12-02 01:03:43

标签: android amazon-web-services amazon-s3

我正在尝试遵循教程,将文件从Android SDK上传到S3,如here所述。在成功验证我能够创建CognitoCachingCredentialsProvider之后,我尝试从我的设备执行上传到我已经设置的S3存储桶。我有以下代码来尝试这个:

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%已上传,实际上我的文件未在目标存储桶中按预期显示。任何人都知道为什么文件没有按预期上传?

1 个答案:

答案 0 :(得分:5)

可能存在某种错误,您是否可以启用请求日志记录并查看日志中是否显示任何响应错误?

adb shell setprop log.tag.com.amazonaws.request DEBUG

并在您的代码中:

java.util.logging.Logger.getLogger(" com.amazonaws.request&#34)。setLevel(java.util.logging.Level.FINEST);

要仔细检查的一件事是您正确设置了S3存储桶权限:http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/s3transfermanager.html#set-permissions-on-the-bucket