转让失败转移s3

时间:2015-09-20 21:46:49

标签: java android amazon-s3 download illegalstateexception

我试图从s3存储桶中下载文件,但我继续使用“#34;传输失败”消息获取非法状态异常。" 上传工作正常。这是我的代码和堆栈跟踪。谁知道可能出错了什么? (最后注意,image.url不是一个完整的url,它是一个objectKey)

File parent = new File(getFilesDir() + "/images");
parent.mkdirs();
File file = new File(getFilesDir() + "/images/" + image.url);
File thumbFile = new File(getFilesDir() + "/images/" + image.thumbUrl);

System.out.println("File path: " + file.getPath());
System.out.println("Thumbnail path: " + thumbFile.getPath());

TransferObserver observer = transferUtility.download(
        BUCKET_NAME,     /* The bucket to download from */
        image.url,    /* The key for the object to download */
        file        /* The file to download the object to */
    );
observer.setTransferListener(downloadListener);
  

使用ID 313下载时遇到错误:传输失败。    java.lang.IllegalStateException:传输失败。       在com.amazonaws.mobileconnectors.s3.transferutility.TransferObserver $ TransferContentObserver.onChange(TransferObserver.java:219)       在android.database.ContentObserver.onChange(ContentObserver.java:129)       在android.database.ContentObserver $ NotificationRunnable.run(ContentObserver.java:180)       在android.os.Handler.handleCallback(Handler.java:730)       在android.os.Handler.dispatchMessage(Handler.java:92)       在android.os.Looper.loop(Looper.java:176)       在android.app.ActivityThread.main(ActivityThread.java:5419)       at java.lang.reflect.Method.invokeNative(Native Method)       在java.lang.reflect.Method.invoke(Method.java:525)       在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1046)       在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)       在dalvik.system.NativeStart.main(本地方法)

1 个答案:

答案 0 :(得分:0)

我自己解决了。我认为只要授予“所有人”读取访问权限就足够了。实际上,我必须设置一个存储桶策略,以使上传的每个文件都能获得这些设置。我使用了这个政策:

{   “版本”:“2012年10月17日”,   “声明”:[     {       “SID”: “AddPerm”       “效果”:“允许”,       “校长”:“”,       “行动”:[ “S3:GetObject的”],       “资源”:[ “ARN:AWS:S3 ::: examplebucket / ”]     }   ] }