Setting up S3 compatible service for blob storage on Google Cloud Storage

PS: cross posted on stackoverflow here.

hey, i’m trying to setup s3 like service for drone logs. i’ve tested that my AWS_* values are set correctly in the container and using aws-cli from inside container gives correct output for

aws s3api list-objects --bucket drone-logs --endpoint-url=[https://storage.googleapis.com](https://storage.googleapis.com/)

however, drone server itself is unable to upload logs to the bucket (with following error):

{"error":"InvalidArgument: Invalid argument.\n\tstatus code: 400, request id: , host id: ","level":"warning","msg":"manager: cannot upload complete logs","step-id":7,"time":"2023-02-09T12:26:16Z"}

drone server on startup shows that s3 related configuration was picked correctly:

rpc:
  server: ""
  secret: my-secret
  debug: false
  host: drone.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  proto: https
s3:
  bucket: drone-logs
  prefix: ""
  endpoint: https://storage.googleapis.com
  pathstyle: true

the env. vars inside droner server container are:

# env | grep -E 'DRONE|AWS' | sort
AWS_ACCESS_KEY_ID=GOOGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
AWS_DEFAULT_REGION=us-east-1
AWS_REGION=us-east-1
AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DRONE_COOKIE_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DRONE_DATABASE_DATASOURCE=postgres://drone:[email protected]:5432/drone?sslmode=disable
DRONE_DATABASE_DRIVER=postgres
DRONE_DATABASE_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DRONE_GITHUB_CLIENT_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DRONE_GITHUB_CLIENT_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DRONE_JSONNET_ENABLED=true
DRONE_LOGS_DEBUG=true
DRONE_LOGS_TRACE=true
DRONE_RPC_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DRONE_S3_BUCKET=drone-logs
DRONE_S3_ENDPOINT=https://storage.googleapis.com
DRONE_S3_PATH_STYLE=true
DRONE_SERVER_HOST=drone.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DRONE_SERVER_PROTO=https
DRONE_STARLARK_ENABLED=true

the .drone.yaml that is being used is available here, on github.

the server is running using the nolimit flag:

go build -tags "nolimit" github.com/drone/drone/cmd/drone-server