Skip to content

Commit

Permalink
Return 501 for unsupported S3 APIs (#61)
Browse files Browse the repository at this point in the history
  • Loading branch information
Robothy authored Jun 29, 2023
1 parent d4e6474 commit 6c363df
Show file tree
Hide file tree
Showing 4 changed files with 597 additions and 161 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,16 @@
import com.amazonaws.services.s3.model.BucketTaggingConfiguration;
import com.amazonaws.services.s3.model.BucketVersioningConfiguration;
import com.amazonaws.services.s3.model.CompleteMultipartUploadRequest;
import com.amazonaws.services.s3.model.CopyPartRequest;
import com.amazonaws.services.s3.model.DeleteMarkerReplication;
import com.amazonaws.services.s3.model.DeleteObjectTaggingRequest;
import com.amazonaws.services.s3.model.DeleteObjectsRequest;
import com.amazonaws.services.s3.model.GetObjectTaggingRequest;
import com.amazonaws.services.s3.model.HeadBucketRequest;
import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest;
import com.amazonaws.services.s3.model.InitiateMultipartUploadResult;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.ObjectTagging;
import com.amazonaws.services.s3.model.PartETag;
import com.amazonaws.services.s3.model.ReplicationDestinationConfig;
import com.amazonaws.services.s3.model.ReplicationRule;
Expand All @@ -25,6 +29,8 @@
import com.amazonaws.services.s3.model.ServerSideEncryptionRule;
import com.amazonaws.services.s3.model.SetBucketEncryptionRequest;
import com.amazonaws.services.s3.model.SetBucketVersioningConfigurationRequest;
import com.amazonaws.services.s3.model.SetObjectTaggingRequest;
import com.amazonaws.services.s3.model.Tag;
import com.amazonaws.services.s3.model.TagSet;
import com.amazonaws.services.s3.model.UploadPartRequest;
import com.github.dockerjava.api.command.StopContainerCmd;
Expand Down Expand Up @@ -112,6 +118,11 @@ static void run(AmazonS3 s3) {
s3.putObject(bucketName, "my-object", "Hello World!");
s3.listVersions(bucketName, "my-object");
s3.copyObject(bucketName, "my-object", bucketName, "my-object-copy");
s3.setObjectTagging(new SetObjectTaggingRequest(bucketName, "my-object",
new ObjectTagging(List.of(new Tag("k1", "v1")))));
s3.getObjectTagging(new GetObjectTaggingRequest(bucketName, "my-object"));
s3.deleteObjectTagging(new DeleteObjectTaggingRequest(bucketName, "my-object"));

s3.initiateMultipartUpload(new InitiateMultipartUploadRequest(bucketName, "my-object"));

ObjectMetadata objectMetadata1 = new ObjectMetadata();
Expand Down Expand Up @@ -179,6 +190,15 @@ static void run(AmazonS3 s3) {
s3.deleteObjects(new DeleteObjectsRequest(bucketName).withKeys(List.of(new DeleteObjectsRequest.KeyVersion("my-object", "version"))));

assertThrows(AmazonS3Exception.class, () -> s3.deleteBucket("not-exist-bucket"));

assertThrows(AmazonS3Exception.class, () -> {
s3.copyPart(new CopyPartRequest().withUploadId(initResult.getUploadId())
.withPartNumber(1)
.withSourceBucketName(bucketName)
.withSourceKey("my-object")
.withDestinationBucketName(bucketName)
.withDestinationKey("my-object-copy"));
}); // not implemented yet
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import com.amazonaws.ClientConfiguration;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.AmazonS3Exception;
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.InitiateMultipartUploadRequest;
import com.amazonaws.services.s3.model.InitiateMultipartUploadResult;
import com.amazonaws.services.s3.model.ObjectMetadata;
Expand Down Expand Up @@ -79,6 +82,15 @@ void multipartUpload(AmazonS3 s3) throws IOException {

S3Object object = s3.getObject(bucket, key1);
assertEquals("HelloWorld", new String(object.getObjectContent().readAllBytes()));

assertThrows(AmazonS3Exception.class, () -> {
s3.copyPart(new CopyPartRequest().withUploadId(initResult.getUploadId())
.withPartNumber(1)
.withSourceBucketName(bucket)
.withSourceKey(key1)
.withDestinationBucketName(bucket)
.withDestinationKey(key1));
});
}

}
Loading

0 comments on commit 6c363df

Please sign in to comment.