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
|
// CHECKSTYLE:OFF
|
||||||
final class DeleteMultipleObjectsRequest {
|
final class DeleteMultipleObjectsRequest {
|
||||||
|
@JacksonXmlProperty(localName = "Quiet")
|
||||||
|
boolean quiet;
|
||||||
|
|
||||||
@JacksonXmlProperty(localName = "Object")
|
@JacksonXmlProperty(localName = "Object")
|
||||||
@JacksonXmlElementWrapper(useWrapping = false)
|
@JacksonXmlElementWrapper(useWrapping = false)
|
||||||
Collection<S3Object> objects;
|
Collection<S3Object> objects;
|
||||||
|
|
|
@ -1286,6 +1286,8 @@ public class S3ProxyHandler {
|
||||||
xml.writeStartDocument();
|
xml.writeStartDocument();
|
||||||
xml.writeStartElement("DeleteResult");
|
xml.writeStartElement("DeleteResult");
|
||||||
xml.writeDefaultNamespace(AWS_XMLNS);
|
xml.writeDefaultNamespace(AWS_XMLNS);
|
||||||
|
|
||||||
|
if (!dmor.quiet) {
|
||||||
for (String blobName : blobNames) {
|
for (String blobName : blobNames) {
|
||||||
xml.writeStartElement("Deleted");
|
xml.writeStartElement("Deleted");
|
||||||
|
|
||||||
|
@ -1293,6 +1295,8 @@ public class S3ProxyHandler {
|
||||||
|
|
||||||
xml.writeEndElement();
|
xml.writeEndElement();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: emit error stanza
|
// TODO: emit error stanza
|
||||||
xml.writeEndElement();
|
xml.writeEndElement();
|
||||||
xml.flush();
|
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.CompleteMultipartUploadResult;
|
||||||
import com.amazonaws.services.s3.model.CopyPartRequest;
|
import com.amazonaws.services.s3.model.CopyPartRequest;
|
||||||
import com.amazonaws.services.s3.model.CopyPartResult;
|
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.GetObjectRequest;
|
||||||
import com.amazonaws.services.s3.model.GroupGrantee;
|
import com.amazonaws.services.s3.model.GroupGrantee;
|
||||||
import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest;
|
import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest;
|
||||||
|
@ -501,6 +503,32 @@ public final class S3AwsSdkTest {
|
||||||
.isEqualTo(expiresTime);
|
.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
|
@Test
|
||||||
public void testPartNumberMarker() throws Exception {
|
public void testPartNumberMarker() throws Exception {
|
||||||
String blobName = "foo";
|
String blobName = "foo";
|
||||||
|
|
Ładowanie…
Reference in New Issue