mirror of https://github.com/apache/jclouds.git
JCLOUDS-883: Replace metadata during Swift copy
Previously Swift copy would append metadata instead of replacing it.
This commit is contained in:
parent
53c3a4918a
commit
4f32e863ad
|
@ -19,6 +19,7 @@ package org.jclouds.openstack.swift.v1.features;
|
||||||
import static com.google.common.net.HttpHeaders.EXPECT;
|
import static com.google.common.net.HttpHeaders.EXPECT;
|
||||||
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
|
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
|
||||||
import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_COPY_FROM;
|
import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_COPY_FROM;
|
||||||
|
import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_COPY_FRESH_METADATA;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -309,7 +310,7 @@ public interface ObjectApi {
|
||||||
@Named("object:copy")
|
@Named("object:copy")
|
||||||
@PUT
|
@PUT
|
||||||
@Path("/{destinationObject}")
|
@Path("/{destinationObject}")
|
||||||
@Headers(keys = OBJECT_COPY_FROM, values = "/{sourceContainer}/{sourceObject}")
|
@Headers(keys = {OBJECT_COPY_FROM, OBJECT_COPY_FRESH_METADATA}, values = {"/{sourceContainer}/{sourceObject}", "True"})
|
||||||
@Fallback(FalseOnKeyNotFound.class)
|
@Fallback(FalseOnKeyNotFound.class)
|
||||||
boolean copy(@PathParam("destinationObject") String destinationObject,
|
boolean copy(@PathParam("destinationObject") String destinationObject,
|
||||||
@PathParam("sourceContainer") String sourceContainer,
|
@PathParam("sourceContainer") String sourceContainer,
|
||||||
|
|
|
@ -71,6 +71,7 @@ public final class SwiftHeaders {
|
||||||
public static final String CONTAINER_WEB_MODE = "X-Web-Mode";
|
public static final String CONTAINER_WEB_MODE = "X-Web-Mode";
|
||||||
|
|
||||||
public static final String OBJECT_COPY_FROM = "X-Copy-From";
|
public static final String OBJECT_COPY_FROM = "X-Copy-From";
|
||||||
|
public static final String OBJECT_COPY_FRESH_METADATA = "X-Fresh-Metadata";
|
||||||
public static final String OBJECT_DELETE_AFTER = "X-Delete-After";
|
public static final String OBJECT_DELETE_AFTER = "X-Delete-After";
|
||||||
public static final String OBJECT_DELETE_AT = "X-Delete-At";
|
public static final String OBJECT_DELETE_AT = "X-Delete-At";
|
||||||
public static final String OBJECT_MANIFEST = "X-Object-Manifest";
|
public static final String OBJECT_MANIFEST = "X-Object-Manifest";
|
||||||
|
|
|
@ -79,11 +79,6 @@ public class SwiftBlobIntegrationLiveTest extends BaseBlobIntegrationTest {
|
||||||
throw new SkipException("unsupported in swift");
|
throw new SkipException("unsupported in swift");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void testCopyBlobReplaceMetadata() throws Exception {
|
|
||||||
throw new SkipException("Swift only supports appending to user metadata, not replacing it");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected long getMinimumMultipartBlobSize() {
|
protected long getMinimumMultipartBlobSize() {
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue