【发布时间】:2017-09-30 19:47:37
【问题描述】:
我使用下面的代码从 s3 中删除多个文件
AWSCredentials credentials = new BasicAWSCredentials(key, S3secretKey);
AmazonS3 s3client = new AmazonS3Client(credentials);
String[] fileNames = files.split(",");
if(fileNames.length==1)
s3client.deleteObject(bucketName+path, files);
else{
List<KeyVersion> keys = new ArrayList<KeyVersion>();
for(int i =0 ; i< fileNames.length ; i++){
keys.add(new KeyVersion(fileNames[i]));
}
DeleteObjectsRequest multiObjectDeleteRequest = new DeleteObjectsRequest(bucketName+path);
multiObjectDeleteRequest.setKeys(keys);
DeleteObjectsResult delObjRes = s3client.deleteObjects(multiObjectDeleteRequest);
System.out.format("Successfully deleted all the %s items.\n", delObjRes.getDeletedObjects().size());
}
显示已成功删除,但文件未从 s3 中删除
对于单个文件代码s3client.deleteObject(bucketName, file); 工作正常。
【问题讨论】:
-
您如何检查请求我们是否成功?
-
删除后我正在打印此语句 System.out.format("已成功删除所有 %s 项。\n", delObjRes.getDeletedObjects().size());这里显示已删除的对象
-
这只是您的 SOP,AWS 不会返回它
-
我也没有收到错误。我如何从 aws 获得成功? java中如何从aws中删除多个文件?
-
你在s3中检查文件是否被删除了吗?