![](/img/trans.png)
[英]Getting NoSuchMethoError While uploading file on Amazon S3 bucket
[英]Getting Error while Uploading Media to S3 Bucket from android
我正在使用android aws依賴com.amazonaws:aws-android-sdk-s3:2.6.+
上傳圖片獲取錯誤時如下所示
com.amazonaws.services.s3.model.AmazonS3Exception:拒絕訪問(服務:Amazon S3;狀態代碼:403;錯誤代碼:AccessDenied;請求ID:XXXXXXXXXXX),S3擴展請求ID: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());
}
});
}
首先,需要檢查s3存儲桶的權限。 然后轉到存儲桶策略並檢查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}/*"
}
]
}
嘗試以上權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.