com.amazonaws.services.s3.model.AmazonS3Exception:必须指定用户密钥

jde*_*lop 5 java amazon-s3

com.amazonaws.services.s3.model.AmazonS3Exception: User key must be specified. (Service: Amazon S3; Status Code: 400;
       at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1160)
       at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:748)
       at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:467)
       at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:302)
       at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3769)
       at com.amazonaws.services.s3.AmazonS3Client.deleteObjects(AmazonS3Client.java:1841)
Run Code Online (Sandbox Code Playgroud)

代码如下所示:

client.deleteObjects(new DeleteObjectsRequest(bucketName).withKeys(keys.toArray(new String[urls.length]))
Run Code Online (Sandbox Code Playgroud)

访问/密钥设置正确.

什么是用户密钥?

ben*_*y23 1

如果 url 比键长,您将提交一个比键的大小长且包含空条目的数组,这可能会导致异常(我自己没有尝试过)。

您可能会想要:

client.deleteObjects(new DeleteObjectsRequest(bucketName)
    .withKeys(keys.toArray(new String[keys.length]))
--------------------------------------^^^^
Run Code Online (Sandbox Code Playgroud)