2015-09-20 3 views
1

Я пытаюсь загрузить файлы из ведра s3, но я продолжаю получать недопустимое исключение с сообщением «Transfer failed». Загрузка работает отлично. Вот мой код и стек. Кто-нибудь знает, что может быть неправильно? (Последнее замечание, image.url не весь URL, сво objectKey)transferetility transfer failed s3

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); 

Download with id 313 encountered an error: Transfer failed. java.lang.IllegalStateException: Transfer failed. at com.amazonaws.mobileconnectors.s3.transferutility.TransferObserver$TransferContentObserver.onChange(TransferObserver.java:219) at android.database.ContentObserver.onChange(ContentObserver.java:129) at android.database.ContentObserver$NotificationRunnable.run(ContentObserver.java:180) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) at dalvik.system.NativeStart.main(Native Method)

ответ

0

Я решил это сам. Я думал, что этого достаточно, чтобы предоставить «всем» доступ к чтению в моем ковше. На самом деле мне пришлось установить политику ведра, чтобы каждый загруженный файл также получил эти настройки. Я использовал эту политику:

{ "Версия": "2012-10-17", "О себе": [{ "Sid": "AddPerm", "Эффект": "Разрешить", "Принципал": "", "Действие": [ "s3: GetObject"], "Ресурс": [ "ARN: AWS: s3 ::: examplebucket/"] } ] }

Смежные вопросы