Я могу загружать изображения с Android на Amazon s3. Но они всегда частные, их никто не может отобразить. я должен опубликовать его на консоли управления Amazon s3. Я не могу установить ACL для изображения при его загрузке.Как установить ACL для объекта при загрузке его в Amazon s3?
я узнал, что есть два способа загрузки изображения на Amazon s3 от Android:
- с использованием PutObjectRequest
- с использованием TransferUtility.upload()
Я попробовал оба. если я предпочитаю PutObjectRequest, я должен использовать AsyncTask или другой поток. Потому что PutObjectRequest работает в основном потоке. Но я не хочу использовать AsyncTask или другой поток.
Я хочу использовать TransferUtility, потому что он не работает в основном потоке, работает на службе, поэтому мне не нужно использовать AsyncTask или другой поток. Также я могу легко отслеживать прогресс и состояние передачи. Кроме того, TransferUtility новее, чем PubObjectRequest. Но проблема здесь: я не знаю, как установить ACL для объекта во время или до его загрузки на s3. Я пробовал:
s3Client.setObjectAcl("myBucket", "steve_jobs.jpg", CannedAccessControlList.PublicRead);
но он вернул ошибку «network on main thread». Поэтому мне нужно использовать AsyncTask или другой поток. Но я не хочу использовать AsyncTask или другой поток. как я могу установить ACL для объекта, загружая его с помощью TransferUtility?
https://github.com/aws/aws-sdk-android/issues/63 –