gpt4 book ai didi

java - 无法使用 java 从 Amazon S3 中删除对象?

转载 作者:行者123 更新时间:2023-12-01 17:50:44 24 4
gpt4 key购买 nike

我正在尝试根据前缀文件夹列出对象并删除每个对象。

AWSCredentials awsCredentials = new BasicAWSCredentials("accesskey", "secretkey");
AmazonS3 s3client = new AmazonS3Client(awsCredentials);
ListObjectsRequest listObjectsRequest =
new ListObjectsRequest("bucketname","folder",null,"/",1000);

s3client
.listObjects(listObjectsRequest)
.getObjectSummaries()
.forEach(
(file) -> {
DeleteObjectRequest deleteRequest = new DeleteObjectRequest("bucketname", file.getKey());
s3client.deleteObject(deleteRequest);
});

但是我遇到了异常

com.amazonaws.services.s3.model.AmazonS3Exception:访问被拒绝(服务:Amazon S3;状态代码:403;错误代码:AccessDenied;

    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4187)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4134)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4128)
at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:839)

我使用的 key 有效。我可以执行其他操作,例如 getobject()

我做错了什么?

最佳答案

问题标题看起来有误。您可以列出对象;但不删除对象。这看起来是权限问题。

与 key 关联的用户无权删除该 S3 存储桶上的对象。检查这一点的最简单方法是以该用户身份登录 AWS 控制台(如果该用户有 AWS 控制台用户名/密码);并尝试手动删除该对象。

关于java - 无法使用 java 从 Amazon S3 中删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50454794/

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