aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/test-s3-over-https-using-awscli.yml79
1 files changed, 79 insertions, 0 deletions
diff --git a/.github/workflows/test-s3-over-https-using-awscli.yml b/.github/workflows/test-s3-over-https-using-awscli.yml
new file mode 100644
index 000000000..9a5188b82
--- /dev/null
+++ b/.github/workflows/test-s3-over-https-using-awscli.yml
@@ -0,0 +1,79 @@
+name: "test s3 over https using aws-cli"
+
+on:
+ push:
+ branches: [master, test-https-s3-awscli]
+ pull_request:
+ branches: [master, test-https-s3-awscli]
+
+env:
+ AWS_ACCESS_KEY_ID: some_access_key1
+ AWS_SECRET_ACCESS_KEY: some_secret_key1
+ AWS_ENDPOINT_URL: https://localhost:8443
+
+defaults:
+ run:
+ working-directory: weed
+
+jobs:
+ awscli-tests:
+ runs-on: ubuntu-latest
+ timeout-minutes: 5
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: actions/setup-go@v5
+ with:
+ go-version: ^1.24
+
+ - name: Build SeaweedFS
+ run: |
+ go build
+
+ - name: Start SeaweedFS
+ run: |
+ set -e
+ mkdir -p /tmp/data
+ ./weed server -s3 -dir=/tmp/data -s3.config=../docker/compose/s3.json &
+ until curl -s http://localhost:8333/ > /dev/null; do sleep 1; done
+
+ - name: Setup Caddy
+ run: |
+ curl -fsSL "https://caddyserver.com/api/download?os=linux&arch=amd64" -o caddy
+ chmod +x caddy
+ ./caddy version
+ echo "{
+ auto_https disable_redirects
+ local_certs
+ }
+ localhost:8443 {
+ tls internal
+ reverse_proxy localhost:8333
+ }" > Caddyfile
+
+ - name: Start Caddy
+ run: |
+ ./caddy start
+ until curl -fsS --insecure https://localhost:8443 > /dev/null; do sleep 1; done
+
+ - name: Create Bucket
+ run: |
+ aws --no-verify-ssl s3api create-bucket --bucket bucket
+
+ - name: Test PutObject
+ run: |
+ set -e
+ dd if=/dev/urandom of=generated bs=1M count=2
+ aws --no-verify-ssl s3api put-object --bucket bucket --key test-putobject --body generated
+ aws --no-verify-ssl s3api get-object --bucket bucket --key test-putobject downloaded
+ diff -q generated downloaded
+ rm -f generated downloaded
+
+ - name: Test Multi-part Upload
+ run: |
+ set -e
+ dd if=/dev/urandom of=generated bs=1M count=32
+ aws --no-verify-ssl s3 cp --no-progress generated s3://bucket/test-multipart
+ aws --no-verify-ssl s3 cp --no-progress s3://bucket/test-multipart downloaded
+ diff -q generated downloaded
+ rm -f generated downloaded