Ошибка при загрузке медиа в S3 Bucket с Android - PullRequest
0 голосов
/ 27 августа 2018

Я использую Android-зависимость AWS com.amazonaws:aws-android-sdk-s3:2.6.+

При загрузке изображения появляется ошибка, как показано ниже

com.amazonaws.services.s3.model.AmazonS3Exception: доступ запрещен (Сервис: Amazon S3; Код состояния: 403; Код ошибки: AccessDenied; Идентификатор запроса: XXXXXXXXXXX), расширенный идентификатор запроса S3: XXXXXXXXXXXX

Вот код для загрузки изображения

 private void beginUpload(String filePath, final String mediaCaption, 
 Message message,boolean isThumb,final 
 UploadFileToStorageCompletionListener listener) {
    getLogger().log(Strings.TAG, "########## 3:  " + filePath);
    //construct a bucket path
    final String fullBucketPath = 
 constructBucketPath(message.getMediaType(), message.getId(), 
 isThumb);
    File file = new File(filePath);
    mObserver = mTransferUtility.upload(fullBucketPath, mediaCaption, 
   file);

    mObserver.setTransferListener(new TransferListener() {
        @Override
        public void onStateChanged(int id, TransferState state) {
            getLogger().log(Strings.TAG," onStateChanged() " + state);
            if (state.equals(TransferState.COMPLETED)) {
                listener.onUploadSuccess(fullBucketPath);
            }
        }

        @Override
        public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {
            getLogger().log(Strings.TAG,"onProgressChanged() " + bytesCurrent + "/" + bytesTotal);
            dismissProgressDialog();
        }

        @Override
        public void onError(int id, Exception ex) {
            listener.onDatabaseError(new FirebaseFailure(ex));
            getLogger().log(Strings.TAG, "onError() " + ex.getMessage());
        }
    });
}

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Во-первых, необходимо проверить разрешения для корзины s3. И перейдите к политике bucket и проверьте объект json, который является разрешениями для put, get и post.

 {
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "AddPerm",
        "Effect": "Allow",
        "Principal": "*",
        "Action": [
            "s3:PutObject",
            "s3:GetObject"
        ],
        "Resource": "arn:aws:s3:::{FILE NAME}/*"
    }
]
}

Попробуйте указанные выше разрешения.

0 голосов
/ 27 августа 2018

Вам необходимо проверить, имеет ли пользователь [Ключ доступа и Секретный ключ] для текущих используемых вами конфигов разрешение на использование S3. Вы можете проверить подробности информации или перейти к своему IAM для изменения разрешений, для получения подробной информации о посещении IAM this

Для начала попробуйте с Полный доступ S3

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...