como definir a ACL para um objeto durante o upload para o Amazon s3?

posso fazer upload de imagens do Android para o Amazon s3. Mas eles são sempre particulares, ninguém pode exibi-los. Eu tenho que torná-lo público no console de gerenciamento Amazon s3. não consigo definir a ACL para uma imagem enquanto a carrega.

Aprendi que, existem duas maneiras de fazer upload de imagens para o Amazon s3 do Android:

usando PutObjectRequestusando TransferUtility.upload ()

eu tentei ambos. se eu preferir PutObjectRequest, tenho que usar AsyncTask ou outro segmento. Porque PutObjectRequest é executado no thread principal. Mas eu não quero usar o AsyncTask ou outro segmento.

Eu quero usar TransferUtility, porque não é executado no thread principal, funciona no serviço, portanto, não preciso usar o AsyncTask ou outro thread. Também posso acompanhar o progresso e o estado da transferência facilmente. Além disso, TransferUtility é mais recente que PubObjectRequest. Mas o problema vem aqui: eu não sei como definir a ACL para um objeto enquanto ou antes de enviá-lo para o s3. eu tentei isso:

s3Client.setObjectAcl("myBucket", "steve_jobs.jpg", CannedAccessControlList.PublicRead);

mas retornou o erro "rede no segmento principal". Então, eu preciso usar o AsyncTask ou outro thread.but eu não quero usar o AsyncTask ou outro thread. como posso definir a ACL para um objeto enquanto o carrega com TransferUtility?

questionAnswers(1)

yourAnswerToTheQuestion