From affacb1b676e257c4a808b35dd93d6ae06962ca1 Mon Sep 17 00:00:00 2001 From: Taehyung Lim Date: Fri, 2 May 2025 05:06:59 +0900 Subject: [PATCH] [s3] add tests for s3 over https using aws-cli (#6731) * [s3] add tests for s3 over https using aws-cli * fix typo --- .../test-s3-over-https-using-awscli.yml | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 .github/workflows/test-s3-over-https-using-awscli.yml 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