kopia lustrzana https://github.com/gaul/s3proxy
Ignore part-number-marker when zero
S3Proxy does not support pagination but it can support this initial no-op value. Fixes #162.pull/132/head
rodzic
4fb4a718b9
commit
0dc133036b
|
@ -143,6 +143,7 @@ public class S3ProxyHandler {
|
||||||
"location",
|
"location",
|
||||||
"marker",
|
"marker",
|
||||||
"max-keys",
|
"max-keys",
|
||||||
|
"part-number-marker",
|
||||||
"partNumber",
|
"partNumber",
|
||||||
"prefix",
|
"prefix",
|
||||||
"response-cache-control",
|
"response-cache-control",
|
||||||
|
@ -1888,7 +1889,13 @@ public class S3ProxyHandler {
|
||||||
private void handleListParts(HttpServletRequest request,
|
private void handleListParts(HttpServletRequest request,
|
||||||
HttpServletResponse response, BlobStore blobStore,
|
HttpServletResponse response, BlobStore blobStore,
|
||||||
String containerName, String blobName, String uploadId)
|
String containerName, String blobName, String uploadId)
|
||||||
throws IOException {
|
throws IOException, S3Exception {
|
||||||
|
// support only the no-op zero case
|
||||||
|
String partNumberMarker = request.getParameter("part-number-marker");
|
||||||
|
if (partNumberMarker != null && !partNumberMarker.equals("0")) {
|
||||||
|
throw new S3Exception(S3ErrorCode.NOT_IMPLEMENTED);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: how to reconstruct original mpu?
|
// TODO: how to reconstruct original mpu?
|
||||||
MultipartUpload mpu = MultipartUpload.create(containerName,
|
MultipartUpload mpu = MultipartUpload.create(containerName,
|
||||||
blobName, uploadId, createFakeBlobMetadata(blobStore),
|
blobName, uploadId, createFakeBlobMetadata(blobStore),
|
||||||
|
|
|
@ -56,6 +56,7 @@ import com.amazonaws.services.s3.model.GroupGrantee;
|
||||||
import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest;
|
import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest;
|
||||||
import com.amazonaws.services.s3.model.InitiateMultipartUploadResult;
|
import com.amazonaws.services.s3.model.InitiateMultipartUploadResult;
|
||||||
import com.amazonaws.services.s3.model.ListObjectsRequest;
|
import com.amazonaws.services.s3.model.ListObjectsRequest;
|
||||||
|
import com.amazonaws.services.s3.model.ListPartsRequest;
|
||||||
import com.amazonaws.services.s3.model.ObjectListing;
|
import com.amazonaws.services.s3.model.ObjectListing;
|
||||||
import com.amazonaws.services.s3.model.ObjectMetadata;
|
import com.amazonaws.services.s3.model.ObjectMetadata;
|
||||||
import com.amazonaws.services.s3.model.Permission;
|
import com.amazonaws.services.s3.model.Permission;
|
||||||
|
@ -500,6 +501,24 @@ public final class S3AwsSdkTest {
|
||||||
.isEqualTo(expiresTime);
|
.isEqualTo(expiresTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testPartNumberMarker() throws Exception {
|
||||||
|
String blobName = "foo";
|
||||||
|
InitiateMultipartUploadResult result = client.initiateMultipartUpload(
|
||||||
|
new InitiateMultipartUploadRequest(containerName, blobName));
|
||||||
|
ListPartsRequest request = new ListPartsRequest(containerName,
|
||||||
|
blobName, result.getUploadId());
|
||||||
|
|
||||||
|
client.listParts(request.withPartNumberMarker(0));
|
||||||
|
|
||||||
|
try {
|
||||||
|
client.listParts(request.withPartNumberMarker(1));
|
||||||
|
Fail.failBecauseExceptionWasNotThrown(AmazonS3Exception.class);
|
||||||
|
} catch (AmazonS3Exception e) {
|
||||||
|
assertThat(e.getErrorCode()).isEqualTo("NotImplemented");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static final class NullX509TrustManager
|
private static final class NullX509TrustManager
|
||||||
implements X509TrustManager {
|
implements X509TrustManager {
|
||||||
@Override
|
@Override
|
||||||
|
|
Ładowanie…
Reference in New Issue