gitextract_jwamyj7y/ ├── .dockerignore ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ └── ci-main.yml ├── .gitignore ├── .gitmodules ├── .mailmap ├── .mvn/ │ └── maven.config ├── .releaserc ├── Dockerfile ├── LICENSE ├── README.md ├── docs/ │ ├── Encryption.md │ └── Logging.md ├── pom.xml └── src/ ├── main/ │ ├── assembly/ │ │ └── jar-with-dependencies.xml │ ├── config/ │ │ └── logback.xml │ ├── java/ │ │ └── org/ │ │ └── gaul/ │ │ └── s3proxy/ │ │ ├── AccessControlPolicy.java │ │ ├── AliasBlobStore.java │ │ ├── AuthenticationType.java │ │ ├── AwsHttpHeaders.java │ │ ├── AwsSignature.java │ │ ├── BlobStoreLocator.java │ │ ├── CaseInsensitiveImmutableMultimap.java │ │ ├── ChunkedInputStream.java │ │ ├── CompleteMultipartUploadRequest.java │ │ ├── CreateBucketRequest.java │ │ ├── CrossOriginResourceSharing.java │ │ ├── DeleteMultipleObjectsRequest.java │ │ ├── EncryptedBlobStore.java │ │ ├── EventualBlobStore.java │ │ ├── GlobBlobStoreLocator.java │ │ ├── LatencyBlobStore.java │ │ ├── Main.java │ │ ├── MetricsHandler.java │ │ ├── NoCacheBlobStore.java │ │ ├── NullBlobStore.java │ │ ├── PrefixBlobStore.java │ │ ├── PutOptions2.java │ │ ├── Quirks.java │ │ ├── ReadOnlyBlobStore.java │ │ ├── RegexBlobStore.java │ │ ├── S3AuthorizationHeader.java │ │ ├── S3ErrorCode.java │ │ ├── S3Exception.java │ │ ├── S3Operation.java │ │ ├── S3Proxy.java │ │ ├── S3ProxyConstants.java │ │ ├── S3ProxyHandler.java │ │ ├── S3ProxyHandlerJetty.java │ │ ├── S3ProxyMetrics.java │ │ ├── ShardedBlobStore.java │ │ ├── StorageClassBlobStore.java │ │ ├── ThrottledInputStream.java │ │ ├── UserMetadataReplacerBlobStore.java │ │ ├── awssdk/ │ │ │ ├── AwsS3SdkApiMetadata.java │ │ │ ├── AwsS3SdkBlobStore.java │ │ │ ├── AwsS3SdkBlobStoreContextModule.java │ │ │ └── AwsS3SdkProviderMetadata.java │ │ ├── azureblob/ │ │ │ ├── AzureBlobApiMetadata.java │ │ │ ├── AzureBlobProviderMetadata.java │ │ │ ├── AzureBlobStore.java │ │ │ └── AzureBlobStoreContextModule.java │ │ ├── crypto/ │ │ │ ├── Constants.java │ │ │ ├── Decryption.java │ │ │ ├── DecryptionInputStream.java │ │ │ ├── Encryption.java │ │ │ ├── EncryptionInputStream.java │ │ │ └── PartPadding.java │ │ ├── gcloudsdk/ │ │ │ ├── GCloudApiMetadata.java │ │ │ ├── GCloudBlobStore.java │ │ │ ├── GCloudBlobStoreContextModule.java │ │ │ └── GCloudProviderMetadata.java │ │ ├── junit/ │ │ │ ├── S3ProxyExtension.java │ │ │ ├── S3ProxyJunitCore.java │ │ │ └── S3ProxyRule.java │ │ └── nio2blob/ │ │ ├── AbstractNio2BlobStore.java │ │ ├── FilesystemNio2BlobApiMetadata.java │ │ ├── FilesystemNio2BlobProviderMetadata.java │ │ ├── FilesystemNio2BlobStore.java │ │ ├── FilesystemNio2BlobStoreContextModule.java │ │ ├── TransientNio2BlobApiMetadata.java │ │ ├── TransientNio2BlobProviderMetadata.java │ │ ├── TransientNio2BlobStore.java │ │ └── TransientNio2BlobStoreContextModule.java │ └── resources/ │ ├── checkstyle.xml │ ├── copyright_header.txt │ └── run-docker-container.sh └── test/ ├── java/ │ └── org/ │ └── gaul/ │ └── s3proxy/ │ ├── AliasBlobStoreTest.java │ ├── AwsS3SdkBlobStoreTest.java │ ├── AwsSdk2Test.java │ ├── AwsSdkAnonymousTest.java │ ├── AwsSdkTest.java │ ├── CrossOriginResourceSharingAllowAllResponseTest.java │ ├── CrossOriginResourceSharingResponseTest.java │ ├── CrossOriginResourceSharingRuleTest.java │ ├── EncryptedBlobStoreTest.java │ ├── EventualBlobStoreTest.java │ ├── GlobBlobStoreLocatorTest.java │ ├── LatencyBlobStoreTest.java │ ├── NoCacheBlobStoreTest.java │ ├── NullBlobStoreTest.java │ ├── PrefixBlobStoreTest.java │ ├── ReadOnlyBlobStoreTest.java │ ├── RegexBlobStoreTest.java │ ├── ShardedBlobStoreTest.java │ ├── TestUtils.java │ ├── TierBlobStoreTest.java │ ├── UserMetadataReplacerBlobStoreTest.java │ └── junit/ │ ├── S3ProxyExtensionTest.java │ └── S3ProxyRuleTest.java └── resources/ ├── keystore.jks ├── logback.xml ├── run-s3-tests.sh ├── s3-tests.conf ├── s3proxy-anonymous.conf ├── s3proxy-azurite.conf ├── s3proxy-cors-allow-all.conf ├── s3proxy-cors.conf ├── s3proxy-encryption.conf ├── s3proxy-fake-gcs-server.conf ├── s3proxy-filesystem-nio2.conf ├── s3proxy-localstack-aws-s3-sdk.conf ├── s3proxy-localstack-s3.conf ├── s3proxy-transient-nio2.conf └── s3proxy.conf