尝试使用适用于Android的Amazon Mobile S3存储桶SDK下载映像文件时出错

时间:2015-12-23 07:02:54

标签: android amazon-s3

我尝试使用Amazon Mobile SDK Android下载文件。我创建了我的存储桶,在我设置的权限中,每个人都可以写和读。在amazon Cognito中,我将所有内容都保留为默认值。

尝试从我的存储桶下载任何文件时出现此错误...

E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1  E/AndroidRuntime: java.lang.RuntimeException: An error occured while executing doInBackground()  E/AndroidRuntime:     at android.os.AsyncTask$3.done(AsyncTask.java:299)  E/AndroidRuntime:     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)  E/AndroidRuntime:     at java.util.concurrent.FutureTask.setException(FutureTask.java:219)  E/AndroidRuntime:     at java.util.concurrent.FutureTask.run(FutureTask.java:239)  E/AndroidRuntime:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)  E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) E/AndroidRuntime:     at java.lang.Thread.run(Thread.java:856)  E/AndroidRuntime:  Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 09C37F19011C99ED), S3    Extended Request ID: NrSazbQ1KzqpB/6+YLHiE/vPt1W72zEXGF6TB5uP9vl92Apktzj8hgsz4lJKVhpDodzVMoxzO6Y= E/AndroidRuntime:     at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:709) E/AndroidRuntime:     at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:385) E/AndroidRuntime:     at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:196) E/AndroidRuntime:     at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4204) E/AndroidRuntime:     at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4161) E/AndroidRuntime:     at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:657) E/AndroidRuntime:     at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:628) E/AndroidRuntime:     at com.example.admin.amazons3download.DownloadSelectionActivity$GetFileListTask.doInBackground(DownloadSelectionActivity.java:129) E/AndroidRuntime:     at com.example.admin.amazons3download.DownloadSelectionActivity$GetFileListTask.doInBackground(DownloadSelectionActivity.java:113) E/AndroidRuntime:     at android.os.AsyncTask$2.call(AsyncTask.java:287)  E/AndroidRuntime:     at java.util.concurrent.FutureTask.run(FutureTask.java:234)  E/AndroidRuntime:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)   E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)  E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)  E/AndroidRuntime:     at java.lang.Thread.run(Thread.java:856)

1 个答案:

答案 0 :(得分:0)

你必须在gradle中包含以下库

compile 'com.amazonaws:aws-android-sdk-core:2.2.13'
compile 'com.amazonaws:aws-android-sdk-s3:2.2.13'

在创建存储桶并使用该信息下载或上传文件时获取池ID和存储桶名称。如需更多使用链接https://www.numetriclabz.com/integrate-amazon-s3-to-android-tutorial/

它会帮助你。