我可以將圖像從Android上傳到Amazon s3。但他們總是私密的,沒有人能展示他們。我必須在Amazon S3管理控制檯上公開它。上傳圖片時,我無法爲圖片設置ACL。如何在將對象上傳到Amazon s3時爲其設置ACL?
我瞭解到,有兩種方法可以從Android的圖像上傳到Amazon S3:
- 使用PutObjectRequest
- 使用TransferUtility.upload()
我都嘗試。如果我更喜歡PutObjectRequest,我必須使用AsyncTask或其他線程。因爲PutObjectRequest在主線程上運行。但我不想使用AsyncTask或其他線程。
我想使用TransferUtility,因爲它不在主線程上運行,在服務上工作,所以我不必使用AsyncTask或其他線程。我也可以輕鬆跟蹤進度和轉移狀態。另外,TransferUtility比PubObjectRequest更新。但問題出現在這裏:我不知道如何在將對象上傳到s3的時候爲對象設置ACL。我試過:
s3Client.setObjectAcl("myBucket", "steve_jobs.jpg", CannedAccessControlList.PublicRead);
但它返回「網絡主線程」錯誤。所以我需要使用AsyncTask或其他線程。但我不想使用AsyncTask或其他線程。如何在使用TransferUtility上傳對象時如何設置ACL?
https://github.com/aws/aws-sdk-android/issues/63 –