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",
|
||||
"marker",
|
||||
"max-keys",
|
||||
"part-number-marker",
|
||||
"partNumber",
|
||||
"prefix",
|
||||
"response-cache-control",
|
||||
|
@ -1888,7 +1889,13 @@ public class S3ProxyHandler {
|
|||
private void handleListParts(HttpServletRequest request,
|
||||
HttpServletResponse response, BlobStore blobStore,
|
||||
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?
|
||||
MultipartUpload mpu = MultipartUpload.create(containerName,
|
||||
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.InitiateMultipartUploadResult;
|
||||
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.ObjectMetadata;
|
||||
import com.amazonaws.services.s3.model.Permission;
|
||||
|
@ -500,6 +501,24 @@ public final class S3AwsSdkTest {
|
|||
.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
|
||||
implements X509TrustManager {
|
||||
@Override
|
||||
|
|
Ładowanie…
Reference in New Issue