kopia lustrzana https://github.com/gaul/s3proxy
rodzic
aeb4ba57de
commit
4336000409
|
@ -23,6 +23,9 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
|||
|
||||
// CHECKSTYLE:OFF
|
||||
final class DeleteMultipleObjectsRequest {
|
||||
@JacksonXmlProperty(localName = "Quiet")
|
||||
boolean quiet;
|
||||
|
||||
@JacksonXmlProperty(localName = "Object")
|
||||
@JacksonXmlElementWrapper(useWrapping = false)
|
||||
Collection<S3Object> objects;
|
||||
|
|
|
@ -1286,13 +1286,17 @@ public class S3ProxyHandler {
|
|||
xml.writeStartDocument();
|
||||
xml.writeStartElement("DeleteResult");
|
||||
xml.writeDefaultNamespace(AWS_XMLNS);
|
||||
for (String blobName : blobNames) {
|
||||
xml.writeStartElement("Deleted");
|
||||
|
||||
writeSimpleElement(xml, "Key", blobName);
|
||||
if (!dmor.quiet) {
|
||||
for (String blobName : blobNames) {
|
||||
xml.writeStartElement("Deleted");
|
||||
|
||||
xml.writeEndElement();
|
||||
writeSimpleElement(xml, "Key", blobName);
|
||||
|
||||
xml.writeEndElement();
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: emit error stanza
|
||||
xml.writeEndElement();
|
||||
xml.flush();
|
||||
|
|
|
@ -51,6 +51,8 @@ import com.amazonaws.services.s3.model.CompleteMultipartUploadRequest;
|
|||
import com.amazonaws.services.s3.model.CompleteMultipartUploadResult;
|
||||
import com.amazonaws.services.s3.model.CopyPartRequest;
|
||||
import com.amazonaws.services.s3.model.CopyPartResult;
|
||||
import com.amazonaws.services.s3.model.DeleteObjectsRequest;
|
||||
import com.amazonaws.services.s3.model.DeleteObjectsResult;
|
||||
import com.amazonaws.services.s3.model.GetObjectRequest;
|
||||
import com.amazonaws.services.s3.model.GroupGrantee;
|
||||
import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest;
|
||||
|
@ -501,6 +503,32 @@ public final class S3AwsSdkTest {
|
|||
.isEqualTo(expiresTime);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMultipleObjects() throws Exception {
|
||||
String blobName = "foo";
|
||||
ObjectMetadata metadata = new ObjectMetadata();
|
||||
metadata.setContentLength(BYTE_SOURCE.size());
|
||||
|
||||
DeleteObjectsRequest request = new DeleteObjectsRequest(containerName)
|
||||
.withKeys(blobName);
|
||||
|
||||
// without quiet
|
||||
client.putObject(containerName, blobName, BYTE_SOURCE.openStream(),
|
||||
metadata);
|
||||
|
||||
DeleteObjectsResult result = client.deleteObjects(request);
|
||||
assertThat(result.getDeletedObjects()).hasSize(1);
|
||||
assertThat(result.getDeletedObjects().iterator().next().getKey())
|
||||
.isEqualTo(blobName);
|
||||
|
||||
// with quiet
|
||||
client.putObject(containerName, blobName, BYTE_SOURCE.openStream(),
|
||||
metadata);
|
||||
|
||||
result = client.deleteObjects(request.withQuiet(true));
|
||||
assertThat(result.getDeletedObjects()).isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPartNumberMarker() throws Exception {
|
||||
String blobName = "foo";
|
||||
|
|
Ładowanie…
Reference in New Issue