【问题标题】:TransferManager upload doesn't actually upload fileTransferManager 上传实际上并没有上传文件
【发布时间】:2014-12-02 01:03:43
【问题描述】:

我正在尝试按照教程从 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% 已上传,并且确实我的文件未按预期显示在目标存储桶中。有人知道为什么文件没有按预期上传吗?

【问题讨论】:

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


    【解决方案1】:

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

    adb shell 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 的错误。我认为这没关系,因为我没有启用未经身份验证的用户。我改变了它,它起作用了。奇怪的是,之后,我返回并使用 null 值再次重试,现在它也可以正常工作了!这一切让我很困惑,但至少它现在可以工作了,所以谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    相关资源
    最近更新 更多