gpt4 book ai didi

java - 从 android 将媒体上传到 S3 存储桶时出错

转载 作者:太空狗 更新时间:2023-10-29 14:38:30 28 4
gpt4 key购买 nike

我正在使用 android aws 依赖 com.amazonaws:aws-android-sdk-s3:2.6.+

上传图片时出现如下错误

com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: XXXXXXXXXXX), S3 Extended Request 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 对象,它是放置、获取和发布的权限。

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

试试上面的权限。

关于java - 从 android 将媒体上传到 S3 存储桶时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52038501/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com