Я застрял на этом целую вечность. Я вижу, что у других была такая же проблема, но я не могу это исправить.Amazon S3 upload Доступ запрещен
Я разрабатываю приложение для Android, которое делает снимок с камеры и загружает его в ведро Amazon S3. Вот мой код:
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(), /* get the context for the application */
"MY_POOL_ID", /* Identity Pool ID */
Regions.US_EAST_1 /* Region for your identity pool--US_EAST_1 or EU_WEST_1*/
);
// Create an S3 client
AmazonS3 s3 = new AmazonS3Client(credentialsProvider);
s3.setRegion(Region.getRegion(Regions.US_EAST_1));
TransferUtility transferUtility = new TransferUtility(s3, getApplicationContext());
TransferObserver observer = transferUtility.upload(
MY_BUCKET, /* The bucket to upload to */
OBJECT_KEY, /* The key for the uploaded object */
f /* The file where the data to upload exists */
);
Я создал ведро. Файл f
, я преобразовал растровое изображение с камеры в файл. Мой идентификатор пула работает, если я его изменяю, я получаю сообщение об ошибке pool not found
; то же самое с ведром. Однако каждый раз, когда я пытаюсь загрузить я получаю эту ошибку:
Failed to upload: 11 due to Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: FD1B30F)
Я новичок с Amazon S3, и я следую их инструкциям снова и снова, но я не могу это исправить.
Я это в манифесте:
<service
android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService"
android:enabled="true" />
и правильные разрешения.
Что нужно сделать, чтобы исправить это?
Какое полное сообщение об ошибке? – Yangfan
Возможно, вы попытаетесь использовать пример: http://stackoverflow.com/questions/27096717/image-upload-amazon-s3-android-sdk-2-0 – mootmoot