[feature] add ability to change s3 bucket lookup type (#4120)

# Description

This pull request implements the ability to specify the S3 bucket lookup type that is passed to the minio-go library. By default, minio-go uses a regex on the endpoint to see if it is a host that supports DNS access or not. Tigris and others are moving away from path style bucket access to DNS style bucket access using subdomains.

This keeps the default as 'auto' to allow existing users to not need to modify their configurations.

closes #3942

## Checklist

- [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md).
- [ ] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat.
- [x] I/we have not leveraged AI to create the proposed changes.
- [x] I/we have performed a self-review of added code.
- [x] I/we have written code that is legible and maintainable by others.
- [ ] I/we have commented the added code, particularly in hard-to-understand areas.
- [x] I/we have made any necessary changes to documentation.
- [ ] I/we have added tests that cover new code.
- [x] I/we have run tests and they pass locally with the changes.
- [x] I/we have run `go fmt ./...` and `golangci-lint run`.

Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4120
Reviewed-by: kim <gruf@noreply.codeberg.org>
Co-authored-by: nopjmp <nop@unearthly.dev>
Co-committed-by: nopjmp <nop@unearthly.dev>
This commit is contained in:
nopjmp
2025-05-06 09:54:50 +00:00
committed by tobi
parent 90a5425fe9
commit 57fc267b5c
7 changed files with 85 additions and 16 deletions

View File

@@ -100,6 +100,19 @@ storage-s3-secret-key: ""
# Examples: ["gts","cool-instance"]
# Default: ""
storage-s3-bucket: ""
# String. Bucket lookup type.
#
# If you know what kind of bucket lookup type you need you can specify it here.
#
# Many providers are no longer offering path-style bucket access and only subdomain-style. Then,
# you will need to specify "dns" here instead of the default "auto".
#
# If your provider only supports path-style bucket access, specify "path".
#
# Examples: ["path", "dns", "auto"]
# Default: "auto"
storage-s3-bucket-lookup: "auto"
```
## AWS S3 Configuration