簡體   English   中英

無法使用Java從AWS S3刪除對象?

[英]Not able to Delete Objects from AWS S3 using java?

我試圖列出基於前綴文件夾的對象並刪除每個對象。

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)

我正在使用的密鑰是有效的。 我可以執行其他操作,例如getobject()

我究竟做錯了什么?

問題標題看起來不對。 您可以列出對象; 但不能刪除對象。 這似乎是權限問題。

與鍵相關聯的用戶無權刪除該S3存儲桶上的對象。 最簡單的檢查方法是在AWS控制台上以該用戶身份登錄(如果該用戶具有aws控制台用戶名/密碼); 並嘗試手動刪除對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM