Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
211 commits
Select commit Hold shift + click to select a range
6a0182d
Bump org.gaul:modernizer-maven-plugin from 2.7.0 to 2.9.0
dependabot[bot] Jun 1, 2024
21d42f3
Bump com.puppycrawl.tools:checkstyle from 10.16.0 to 10.17.0
dependabot[bot] Jun 1, 2024
8c5fb41
Bump com.github.spotbugs:spotbugs-annotations from 4.8.3 to 4.8.5
dependabot[bot] Jun 1, 2024
4175022
Bump org.sonatype.plugins:nexus-staging-maven-plugin
dependabot[bot] Jun 1, 2024
a13b4cf
configure maximum-timeskew with environment variable
timursaikaliev Jun 11, 2024
a82ca68
Rebase s3-tests
gaul Jun 14, 2024
dc2857e
Update s3-tests to latest
gaul Jul 2, 2024
43256a0
Bump com.github.spotbugs:spotbugs-annotations from 4.8.5 to 4.8.6
dependabot[bot] Jul 2, 2024
b4cefcc
Bump com.fasterxml.jackson.dataformat:jackson-dataformat-xml
dependabot[bot] Jul 2, 2024
4edb861
Bump org.junit.jupiter:junit-jupiter from 5.10.2 to 5.10.3
dependabot[bot] Jul 2, 2024
a82e720
Bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.3.1 to 4.8.6.1
dependabot[bot] Jul 2, 2024
b9b9d74
Look up HTTP headers while ignoring case
gaul Jul 19, 2024
5a129e5
Use var in foreach loops with Map.Entry types
gaul Jul 20, 2024
0effb4b
Use var for Immutable builders
gaul Jul 20, 2024
82e50ee
Add middleware to override storage class
gaul Jul 20, 2024
0e68fd7
Bump org.eclipse.jetty:jetty-servlet from 11.0.20 to 11.0.22
dependabot[bot] Aug 1, 2024
45794ae
Bump com.fasterxml.jackson.dataformat:jackson-dataformat-xml
dependabot[bot] Aug 1, 2024
e4d71d2
Bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.6.1 to 4.8.6.2
dependabot[bot] Aug 1, 2024
184c531
Bump org.assertj:assertj-core from 3.25.3 to 3.26.3
dependabot[bot] Aug 1, 2024
b789453
Adds feature allowing Access-Control-Expose-Headers configuration
Aug 5, 2024
a043cef
Adds test
Aug 5, 2024
4a887c1
Fixes styling
Aug 6, 2024
7ede21b
Fixes modernizer issue
Aug 7, 2024
96d82c6
remove timestamp validation for requests that use query string authen…
timursaikaliev Jun 12, 2024
a3e6f47
fix time skew validation for presigned urls
timursaikaliev Jun 18, 2024
6a9778a
Prefer immutable collections where possible
gaul Aug 8, 2024
4976e17
Replace uses of Maps.immutableEntry with Map.entry
gaul Aug 8, 2024
2b4b9ca
README: Adobe s3mock
sullis Aug 13, 2024
61adb31
Allow x-amz-user-agent header
losfair Aug 28, 2024
b0cf452
Bump ch.qos.logback:logback-classic from 1.5.6 to 1.5.7
dependabot[bot] Sep 1, 2024
2fc5560
Bump org.eclipse.jetty:jetty-servlet from 11.0.22 to 11.0.23
dependabot[bot] Sep 1, 2024
0442f40
Bump com.puppycrawl.tools:checkstyle from 10.17.0 to 10.18.1
dependabot[bot] Sep 1, 2024
96da766
Bump slf4j.version from 2.0.13 to 2.0.16
dependabot[bot] Sep 2, 2024
3d2beb3
Enforce limit when deleting multiple objects
gaul Sep 3, 2024
cb443b7
Add ETag to failed conditional GETs
gaul Sep 4, 2024
2d3ed49
Bump upload-artifact and download-artifact to v4
gaul Sep 6, 2024
812a4d3
Rebase s3-tests
gaul Sep 6, 2024
7c57397
S3Proxy 2.3.0 release
gaul Sep 25, 2024
85b0f98
Bump to 2.4.0-SNAPSHOT
gaul Sep 25, 2024
356c12f
Bump ch.qos.logback:logback-classic from 1.5.7 to 1.5.8
dependabot[bot] Oct 1, 2024
97c0f01
Bump org.junit.jupiter:junit-jupiter from 5.10.3 to 5.11.1
dependabot[bot] Oct 1, 2024
0709ec5
Bump com.fasterxml.jackson.dataformat:jackson-dataformat-xml
dependabot[bot] Oct 1, 2024
b27c213
Bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.6.2 to 4.8.6.4
dependabot[bot] Oct 1, 2024
15fe7f3
Allow Last-Modified header to be optional
gaul Oct 2, 2024
017050d
Update deprecated methods
gaul Oct 6, 2024
3e9bf34
Explicitly use project.version
gaul Oct 7, 2024
b74df94
Disable warnings for missing Javadoc
gaul Oct 7, 2024
c3c9037
Close InputStream
gaul Oct 7, 2024
b33f3e2
Add azureblob-sdk provider backed by Azure SDK
gaul Oct 2, 2024
16ac79a
Address Checkstyle warnings
gaul Oct 7, 2024
e01ca79
Replace Guava collections with Java 9 equivalents
gaul Aug 8, 2024
2e2008f
Support SSL setup via SSLContext in S3Proxy.Builder
bersti Oct 7, 2024
1653082
Push tags and latest to Docker Hub
gaul Oct 9, 2024
33b3427
Allow setting service-path config when running via Docker
ferjm Oct 10, 2024
6185f2b
Set outputLength correctly on open ended range requests to encryptedB…
ptemarvelde Oct 16, 2024
6939e6f
Write to OutputStream in azureblobsdk
gaul Oct 26, 2024
4f36e7a
Add azureblob-sdk to Quirks
gaul Oct 27, 2024
7d2d921
Write to OutputStream in azureblobsdk
gaul Oct 27, 2024
7a52cfd
Add mapping for NO_SUCH_KEY for azureblob-sdk
gaul Oct 27, 2024
39ca93b
Do not set Tier for RELATIVE_PATH in azureblob-sdk
gaul Oct 27, 2024
e40f040
Ignore CONTAINER_NOT_FOUND when deleting a bucket
gaul Oct 27, 2024
ecbb56c
Handle BUCKET_ALREADY_OWNED_BY_YOU in azureblob-sdk
gaul Oct 27, 2024
73b0047
Always overwrite in uploadPart in azureblob-sdk
gaul Oct 27, 2024
11b8dbb
Opt into custom Azure logic with azureblob-sdk
gaul Oct 27, 2024
e19226f
Revert "Write to OutputStream in azureblobsdk"
gaul Oct 27, 2024
4bc7854
Allow overriding the endpoint in azureblob-sdk
gaul Oct 27, 2024
111a681
Add configuration for Azurite
gaul Oct 27, 2024
00142f3
Allow overriding test configuration at run-time
gaul Oct 27, 2024
8b22505
Disable retries for AwsSdkTest
gaul Oct 27, 2024
fc7a135
Implement copyBlob for azureblob-sdk
gaul Oct 28, 2024
8311d11
Skip copy blob tests on Azurite
gaul Oct 28, 2024
c28f7db
Add workarounds for azureblob-sdk tests
gaul Oct 28, 2024
38d2881
Support condition get object in azureblob-sdk
gaul Oct 28, 2024
5132838
Fix Checkstyle violations
gaul Oct 28, 2024
38cf4a9
Translate Azure errors in AzureBlobStore
gaul Oct 28, 2024
49e468a
Avoid type duplication with type inference
gaul Oct 28, 2024
c36ae27
Skip failing azureblob-sdk multipart tests
gaul Oct 28, 2024
1120591
Remove unused imports
gaul Oct 28, 2024
ff8e12e
Handle missing buckets and keys in azureblob-sdk
gaul Oct 28, 2024
8ebf6ce
Handle non-empty delete container in azureblob-sdk
gaul Oct 28, 2024
6610b14
Disable retries for azureblob-sdk
gaul Oct 29, 2024
e23e9ac
Emit 501 for initiateMultipartUpload in azureblob-sdk
gaul Oct 29, 2024
d6e9c5b
Update s3-tests submodule for multipart tags
gaul Oct 29, 2024
c2106fa
Split s3-tests tags per-line for readability
gaul Oct 29, 2024
c40237d
Add Last-Modified to azureblob-sdk getBlob
gaul Oct 30, 2024
18d2f0e
Include Content-MD5 in azureblob-sdk putBlob
gaul Oct 30, 2024
5d960b3
Add middleware to replace user metadata
gaul Oct 8, 2024
aea6fd7
Bump copyright year
gaul Oct 30, 2024
544a863
Ignore x-amz-te: append-md5 request header
gaul Nov 1, 2024
013565a
Bump ch.qos.logback:logback-classic from 1.5.8 to 1.5.12
dependabot[bot] Nov 1, 2024
fe784af
Bump com.fasterxml.jackson.dataformat:jackson-dataformat-xml
dependabot[bot] Nov 1, 2024
8408e35
Bump com.google.auto.service:auto-service from 1.0-rc3 to 1.1.1
dependabot[bot] Nov 1, 2024
00989c6
Bump org.junit.jupiter:junit-jupiter from 5.11.1 to 5.11.3
dependabot[bot] Nov 1, 2024
5332a9d
Ignore part checksums in CompleteMultipartUpload
gaul Nov 5, 2024
07613b9
Use marker when listing blobs in azureblob-sdk
gaul Nov 8, 2024
d4e20ac
Run Maven tests against azureblob-sdk in CI
gaul Nov 5, 2024
5da1178
Add support for getBlob ranges in azureblob-sdk
gaul Nov 8, 2024
354ef58
Add test for replacing a multi-part upload
gaul Nov 10, 2024
2e05eee
Handle invalid container names
gaul Nov 10, 2024
b02ce67
Handle invalid MD5 hashes
gaul Nov 10, 2024
5272c79
Handle missing container in more places
gaul Nov 10, 2024
d8350b5
Update s3-tests with azureblob tags
gaul Nov 11, 2024
9e2c40a
Consolidate azureblob-sdk error handling
gaul Nov 11, 2024
2e66fb2
Handle deleting missing container in azureblob-sdk
gaul Nov 11, 2024
783b1f1
Clarify state of azureblob-sdk
gaul Nov 11, 2024
fb31431
Allow overriding s3proxy.conf for s3-tests
gaul Nov 11, 2024
a3125c4
Add test for getting a range
gaul Nov 16, 2024
48c04ec
Handle non-existent blob in UserMetadataReplacer
gaul Nov 18, 2024
b2c4665
Allow copyBlob lastModified to be null
gaul Nov 19, 2024
cbd6c26
fix handleCompleteMultipartUpload bug
ZHAO-SHI-HAO Nov 22, 2024
0ea6dbf
Upgrade to Jetty 11.0.24
gaul Nov 22, 2024
73df2b6
Allow to use Azure managed identities for azureblob-sdk backend
hermandavid Nov 22, 2024
d9e8520
Add NIO.2 BlobStore
gaul Oct 10, 2024
53a20f0
S3Proxy 2.4.0 release
gaul Nov 23, 2024
8896153
Bump to 2.5.0-SNAPSHOT
gaul Nov 23, 2024
db3911c
Prohibit object operations on non-existent containers
gaul Nov 23, 2024
8842c8d
Support container and blob access control
gaul Nov 23, 2024
138abbd
Add creation and last modified times to getBlob
gaul Nov 23, 2024
e05343d
Add ETag and Tier to getBlob and list
gaul Nov 23, 2024
b0e119a
Support list markers in transient-nio2
gaul Nov 24, 2024
e598a83
Treat empty delimiter as if it is not specified
gaul Nov 24, 2024
fc0f31f
Handle list marker after last key in transient-nio2
gaul Nov 24, 2024
6b63abb
Enforce correct MD5 hash in transient-nio2 putBlob
gaul Nov 24, 2024
7ac4146
Handle conditional get in transient-nio2
gaul Nov 24, 2024
8b751f7
Skip s3-tests which fail on transient-nio2
gaul Nov 24, 2024
662bb2c
Run s3-tests against transient-nio2
gaul Nov 24, 2024
e4a3f06
S3Proxy 2.4.1 release
gaul Nov 24, 2024
0ba15ea
Bump to 2.5.0-SNAPSHOT
gaul Nov 24, 2024
595a7f9
Clarify transient-nio2 status
gaul Nov 24, 2024
83bc9f7
Prefer Java 9 InputStream.readAllBytes
gaul Nov 24, 2024
769c5b8
Skip tests which fail on google-cloud-storage
gaul Dec 1, 2024
ec43587
Bump com.azure:azure-identity from 1.13.3 to 1.14.2
dependabot[bot] Dec 1, 2024
6131eac
Bump com.google.guava:guava from 32.0.0-jre to 33.3.1-jre
dependabot[bot] Dec 1, 2024
5f43099
Bump com.azure:azure-storage-blob from 12.28.0 to 12.29.0
dependabot[bot] Dec 1, 2024
fc400b1
Bump com.puppycrawl.tools:checkstyle from 10.18.1 to 10.20.2
dependabot[bot] Dec 1, 2024
8f5a812
Handle google-cloud-storage 412
gaul Dec 2, 2024
7632e9c
Add filesystem-nio2 blobstore
gaul Dec 2, 2024
9cc91bd
Fix stopping condition when deleting parent dirs
gaul Dec 2, 2024
289573e
Include root when checking list prefix
gaul Dec 2, 2024
e712062
Explicitly set BlobAccess during putBlob
gaul Dec 2, 2024
05346ae
filesystem-nio2 requires the MPU stub blob
gaul Dec 2, 2024
d9569d3
Add filesystem-nio2 to CI
gaul Dec 2, 2024
5b358cf
Fix listing on filesystem-nio2 blobstore
gaul Dec 2, 2024
a7ed76e
Add filesystem directory for filesystem-nio2 CI
gaul Dec 2, 2024
5a9e46c
Add azurite exclusions to s3-tests
gaul Dec 4, 2024
b523c44
Fix error-prone warnings
gaul Dec 6, 2024
1e6763e
More consistently use Path objects
gaul Dec 14, 2024
fc92ef0
Replace backslash path separator on Windows
gaul Dec 14, 2024
fef17b0
Eagerly check baseDir in FilesystemNio2BlobStore
gaul Dec 15, 2024
4b3806d
Check for null BlobAccessType in azureblob-sdk
gaul Dec 19, 2024
8b01b3d
Update s3-tests
gaul Dec 19, 2024
53976f6
Fix Checkstyle violation
gaul Dec 19, 2024
b6f6a98
Run s3-tests against Azurite in CI
gaul Oct 30, 2024
de65b61
Clean up MPU test litter in testPartNumberMarker
gaul Dec 23, 2024
3135e44
Add Minio to CI
gaul Dec 22, 2024
e7347c3
Allow overriding log level in run-s3-tests.sh
gaul Dec 23, 2024
e59116f
Update s3-tests
gaul Dec 24, 2024
cb267ee
Clean up tags in s3-tests
gaul Dec 25, 2024
1e110a3
S3Proxy 2.5.0 release
gaul Dec 27, 2024
07bf776
Bump to 2.5.1-SNAPSHOT
gaul Dec 27, 2024
62fd4b0
Clarify filesystem-nio2 status
gaul Dec 27, 2024
a06ddeb
Upgrade to commons-fileupload2
gaul Dec 27, 2024
c2ec948
Require Mavne 3.6.3
gaul Dec 28, 2024
26dd4a4
Prefer Path over File
gaul Dec 28, 2024
c1070f7
Upgrade to modernizer-maven-plugin 3.0.0
gaul Dec 28, 2024
a55606f
Bump org.assertj:assertj-core from 3.26.3 to 3.27.1
dependabot[bot] Jan 1, 2025
ffc7d89
Bump com.google.guava:guava from 33.3.1-jre to 33.4.0-jre
dependabot[bot] Jan 1, 2025
aeb2748
Bump org.junit.jupiter:junit-jupiter from 5.11.3 to 5.11.4
dependabot[bot] Jan 1, 2025
f4ccaad
Bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.6.4 to 4.8.6.6
dependabot[bot] Jan 1, 2025
da99e5b
Bump com.fasterxml.jackson.dataformat:jackson-dataformat-xml
dependabot[bot] Jan 1, 2025
25110e5
Support IRSA for aws-s3 provider
Anhui-tqhuang Jan 3, 2025
3ff077f
Fix Checkstyle and Modernizer warnings
gaul Jan 3, 2025
d45879c
Add Minio config to run-s3-tests.sh
gaul Jan 18, 2025
2fd98d4
Use ubuntu-24.04-arm GitHub runner
gaul Jan 18, 2025
f82ac9c
Upgrade to modernizer-maven-plugin 3.1.0
gaul Jan 14, 2025
86aceaf
Remove dependency on commons-codec
gaul Jan 21, 2025
b8bd258
Remove explicit dependency on Apache commons-io
gaul Jan 21, 2025
7239ed4
feat: Support json logging
ryanfaircloth Jan 21, 2025
c84d0eb
Prefer log replacement over concatenation
gaul Jan 28, 2025
ce80406
Ignore new AWS checksum headers
gaul Jan 29, 2025
0e4ece4
Change Docker storage backend to filesystem-nio2
gaul Jan 29, 2025
50715e0
Upgrade to jclouds 2.7.0
gaul Jan 30, 2025
00e9f32
Update storage tiers to include COOL and COLD
gaul Jan 30, 2025
e7d12ca
Run s3-tests against minio
gaul Dec 24, 2024
83b159e
Recommend to use filesystem-nio2 storage backend
gaul Feb 1, 2025
86b6ee4
Prevent parent path traversal in filesystem-nio2
gaul Jan 28, 2025
5da0fb4
Bump com.amazonaws:aws-java-sdk-sts from 1.12.261 to 1.12.780
dependabot[bot] Feb 1, 2025
f9032a9
Bump ch.qos.logback:logback-classic from 1.5.12 to 1.5.16
dependabot[bot] Feb 1, 2025
1a51a3b
Bump com.puppycrawl.tools:checkstyle from 10.20.2 to 10.21.2
dependabot[bot] Feb 1, 2025
34a0a51
Bump com.azure:azure-identity from 1.14.2 to 1.15.0
dependabot[bot] Feb 1, 2025
aa5851e
Bump com.github.spotbugs:spotbugs-annotations from 4.8.6 to 4.9.0
dependabot[bot] Feb 1, 2025
14134a5
Upgrade to aws-java-sdk-s3 1.12.780
gaul Feb 2, 2025
675d910
Allow Dependabot updates to Maven plugins
gaul Feb 2, 2025
4e25584
Bump actions/setup-python from 4 to 5
dependabot[bot] Feb 2, 2025
af0e67f
Bump docker/setup-qemu-action from 2 to 3
dependabot[bot] Feb 2, 2025
6ffeb75
Bump docker/build-push-action from 5 to 6
dependabot[bot] Feb 2, 2025
5af1a12
Bump docker/metadata-action from 4.0.1 to 5.6.1
dependabot[bot] Feb 2, 2025
0392df8
Bump org.assertj:assertj-core from 3.27.1 to 3.27.3
dependabot[bot] Feb 2, 2025
db34f6b
S3Proxy 2.6.0 release
gaul Feb 2, 2025
c5ce769
Bump to 2.6.1-SNAPSHOT
gaul Feb 2, 2025
1a08bc2
Update copyright year to 2025
gaul Feb 2, 2025
b6ce601
Allow null localIdentify with bucket locators
gaul Feb 8, 2025
977c83c
docker: Match s3proxy.v4-max-non-chunked-request-size default (128 MB)
musabshak Feb 28, 2025
415b573
Bump ch.qos.logback:logback-classic from 1.5.16 to 1.5.17
dependabot[bot] Mar 1, 2025
5d2640d
Bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.6.6 to 4.9.1.0
dependabot[bot] Mar 1, 2025
750fc5a
Bump com.azure:azure-identity from 1.15.0 to 1.15.3
dependabot[bot] Mar 1, 2025
61459ac
Bump com.github.spotbugs:spotbugs-annotations from 4.9.0 to 4.9.2
dependabot[bot] Mar 1, 2025
a8ebb39
Bump docker/metadata-action from 5.6.1 to 5.7.0
dependabot[bot] Mar 1, 2025
dff88b3
Pin Azurite version and update s3-tests
gaul Mar 7, 2025
f5d14ba
Docker: Use dumb-init as init system
musabshak Mar 6, 2025
b007f80
Merge remote-tracking branch 'upstream/master' into sourcegraph-master
willdollman Apr 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@

version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
- package-ecosystem: "maven" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
Expand Down
80 changes: 66 additions & 14 deletions .github/workflows/ci-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ on:
push:
branches:
- "master"
tags:
- "*"
pull_request:
branches:
- "*"
Expand All @@ -13,7 +15,7 @@ env:
jobs:

meta:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04-arm
outputs:
container_tags: ${{ steps.docker_action_meta.outputs.tags }}
container_labels: ${{ steps.docker_action_meta.outputs.labels }}
Expand All @@ -28,13 +30,13 @@ jobs:
persist-credentials: false
- name: Docker meta
id: docker_action_meta
uses: docker/metadata-action@v4.0.1
uses: docker/metadata-action@v5.7.0
with:
images: |
name=ghcr.io/${{ github.repository }}/container
name=andrewgaul/s3proxy,enable=${{ env.dockerhub_publish }}
flavor: |
latest=false
latest=auto
tags: |
type=sha,format=long
type=sha
Expand All @@ -45,7 +47,7 @@ jobs:
labels: |
org.opencontainers.image.licenses=Apache-2.0
runTests:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04-arm
needs: [meta]
steps:
- uses: actions/checkout@v4
Expand All @@ -57,9 +59,9 @@ jobs:
distribution: "temurin"
java-version: "11"
cache: "maven"
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: "3.8"
python-version: "3.11"
cache: "pip"

#Run tests
Expand All @@ -72,35 +74,85 @@ jobs:
- name: Maven Test
run: |
mvn test
- name: Other Test

- name: Maven Test with transient-nio2
run: |
# TODO: run other test classes
mvn test -Ds3proxy.test.conf=s3proxy-transient-nio2.conf -Dtest=AwsSdkTest

- name: Maven Test with filesystem-nio2
run: |
# TODO: run other test classes
mkdir /tmp/blobstore
mvn test -Ds3proxy.test.conf=s3proxy-filesystem-nio2.conf -Dtest=AwsSdkTest

- name: Install Azurite
run: npx --yes --loglevel info azurite@3.34 --version
- name: Start Azurite
shell: bash
run: npx --yes azurite@3.34 azurite-blob &
- name: Maven Test with Azurite
run: |
# TODO: run other test classes
mvn test -Ds3proxy.test.conf=s3proxy-azurite.conf -Dtest=AwsSdkTest

- name: Install Minio
run: |
curl -o minio https://dl.min.io/server/minio/release/linux-$(uname -m | sed -e s/aarch64/arm64/ -e s/x86_64/amd64/)/minio
chmod +x minio
- name: Start Minio
run: |
mkdir mnt/
MINIO_SERVER_URL=http://127.0.0.1:9000 MINIO_ROOT_USER=remote-identity MINIO_ROOT_PASSWORD=remote-credential ./minio server mnt/ &
- name: Maven Test with Minio
run: |
# TODO: run other test classes
mvn test -Ds3proxy.test.conf=s3proxy-minio.conf -Dtest=AwsSdkTest

- name: Install s3-tests
run: |
python -m pip install --upgrade pip
pip install tox tox-gh-actions
- name: Run s3-tests
run: |
./src/test/resources/run-s3-tests.sh
- name: Run s3-tests with transient-nio2
run: |
./src/test/resources/run-s3-tests.sh s3proxy-transient-nio2.conf
- name: Run s3-tests with Azurite
run: |
./src/test/resources/run-s3-tests.sh s3proxy-azurite.conf
kill $(pidof node)
- name: Run s3-tests with Minio
run: |
./src/test/resources/run-s3-tests.sh s3proxy-minio.conf
kill $(pidof minio)

#Store the target
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
with:
name: s3proxy
path: target/s3proxy
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
with:
name: pom
path: pom.xml

Containerize:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04-arm
needs: [runTests, meta]
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v4
with:
name: s3proxy
path: target
- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v4
with:
name: pom
path: .
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

Expand All @@ -120,7 +172,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64,linux/arm/v7
Expand Down
11 changes: 9 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@

WORKDIR /opt/s3proxy

RUN apt-get update && \
apt-get install -y dumb-init && \
rm -rf /var/lib/apt/lists/*

COPY \
target/s3proxy \
src/main/resources/run-docker-container.sh \
/opt/s3proxy/

ENV \

Check warning on line 15 in Dockerfile

View workflow job for this annotation

GitHub Actions / Containerize

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "S3PROXY_ENCRYPTED_BLOBSTORE_PASSWORD") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 15 in Dockerfile

View workflow job for this annotation

GitHub Actions / Containerize

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "JCLOUDS_CREDENTIAL") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 15 in Dockerfile

View workflow job for this annotation

GitHub Actions / Containerize

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "S3PROXY_CREDENTIAL") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 15 in Dockerfile

View workflow job for this annotation

GitHub Actions / Containerize

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "S3PROXY_KEYSTORE_PASSWORD") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 15 in Dockerfile

View workflow job for this annotation

GitHub Actions / Containerize

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "S3PROXY_CORS_ALLOW_CREDENTIAL") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
LOG_LEVEL="info" \
S3PROXY_AUTHORIZATION="aws-v2-or-v4" \
S3PROXY_ENDPOINT="http://0.0.0.0:80" \
Expand All @@ -27,7 +31,7 @@
S3PROXY_ENCRYPTED_BLOBSTORE_PASSWORD="" \
S3PROXY_ENCRYPTED_BLOBSTORE_SALT="" \
S3PROXY_READ_ONLY_BLOBSTORE="false" \
JCLOUDS_PROVIDER="filesystem" \
JCLOUDS_PROVIDER="filesystem-nio2" \
JCLOUDS_ENDPOINT="" \
JCLOUDS_REGION="" \
JCLOUDS_REGIONS="us-east-1" \
Expand All @@ -39,4 +43,7 @@
JCLOUDS_FILESYSTEM_BASEDIR="/data"

EXPOSE 80 443
ENTRYPOINT ["/opt/s3proxy/run-docker-container.sh"]

ENTRYPOINT ["/usr/bin/dumb-init", "--"]

CMD ["/opt/s3proxy/run-docker-container.sh"]
15 changes: 10 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,16 @@ Maven Central hosts S3Proxy artifacts and the wiki has
* atmos
* aws-s3 (Amazon-only)
* azureblob
* azureblob-sdk (newer but lacks multi-part upload, see [Azure/azure-sdk-for-java#42603](https://github.com/Azure/azure-sdk-for-java/issues/42603))
* b2
* filesystem (on-disk storage)
* filesystem (on-disk storage, deprecated)
* filesystem-nio2 (on-disk storage, recommended)
* google-cloud-storage
* openstack-swift
* rackspace-cloudfiles-uk and rackspace-cloudfiles-us
* s3 (all implementations)
* transient (in-memory storage)
* transient (in-memory storage, deprecated)
* transient-nio2 (in-memory storage, recommended)

See the wiki for [examples of configurations](https://github.com/gaul/s3proxy/wiki/Storage-backend-examples).

Expand All @@ -107,8 +110,10 @@ S3Proxy can modify its behavior based on middlewares:
* [eventual consistency modeling](https://github.com/gaul/s3proxy/wiki/Middleware---eventual-consistency)
* [large object mocking](https://github.com/gaul/s3proxy/wiki/Middleware-large-object-mocking)
* [read-only](https://github.com/gaul/s3proxy/wiki/Middleware-read-only)
* [sharded backend containers](https://github.com/gaul/s3proxy/wiki/Middleware-sharded-backend)
* [regex rename blobs](https://github.com/gaul/s3proxy/wiki/Middleware-regex)
* [sharded backend containers](https://github.com/gaul/s3proxy/wiki/Middleware-sharded-backend)
* [storage class override](https://github.com/gaul/s3proxy/wiki/Middleware-storage-class-override)
* [user metadata replacer](https://github.com/gaul/s3proxy/wiki/Middleware-user-metadata-replacer)

## SSL Support

Expand Down Expand Up @@ -164,13 +169,13 @@ for specific storage backends.
* [Ceph s3-tests](https://github.com/ceph/s3-tests) help maintain and improve compatibility with the S3 API
* [fake-s3](https://github.com/jubos/fake-s3), [gofakes3](https://github.com/johannesboyne/gofakes3), [minio](https://github.com/minio/minio), [S3 ninja](https://github.com/scireum/s3ninja), and [s3rver](https://github.com/jamhall/s3rver) provide functionality similar to S3Proxy when using the filesystem backend
* [GlacierProxy](https://github.com/bouncestorage/glacier-proxy) and [SwiftProxy](https://github.com/bouncestorage/swiftproxy) provide similar functionality for the Amazon Glacier and OpenStack Swift APIs
* [s3mock](https://github.com/findify/s3mock) mocks the S3 API for Java/Scala projects
* [s3mock](https://github.com/adobe/S3Mock) - Adobe's s3 mock implementation
* [sbt-s3](https://github.com/localytics/sbt-s3) runs S3Proxy via the Scala Build Tool
* [swift3](https://github.com/openstack/swift3) provides an S3 middleware for OpenStack Swift
* [Zenko](https://www.zenko.io/) provide similar multi-cloud functionality

## License

Copyright (C) 2014-2021 Andrew Gaul
Copyright (C) 2014-2025 Andrew Gaul

Licensed under the Apache License, Version 2.0
8 changes: 8 additions & 0 deletions docs/Logging.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Logging

## Configuration

The following environment variables can be used to configure logging

* LOG_LEVEL default value "info" used to configure log level
* LOG_APPENDER default value "STDOUT" produce string formatted logs "CONTAINER" used to produce json formatted logs
Loading
Loading