[x] I agree to follow the code of conduct that this project follows, as appropriate.
[x] The changes are appropriately documented (if applicable).
[x] The changes have sufficient test coverage (if applicable).
[x] The testsuite passes successfully on my local machine (if applicable).
Summarize your changes:
AWS recommends disabling the use of ACLs and instead using bucket owner-enforced permissions (see https://docs.aws.amazon.com/AmazonS3/latest/userguide/ensure-object-ownership.html). The current configuration and implementation of the S3 publisher always applies an ACL, which simply doesn't work with buckets configured this way. This PR adds an omitAcl option to the config that simply omits the ACL from the upload command.
I considered making this config look more like the Google Cloud Storage publisher (which uses essentially applies some of its options, such as predefinedAcl, public, and private, directly to its upload object); however, that would be a breaking change, and I opted for keeping this non-breaking. I'm happy to refactor if you think that is preferred.
This allows the caller to omit the ACL from the upload request, per Amazon's recommendation of using bucket owner-enforced permissions.
Summarize your changes:
AWS recommends disabling the use of ACLs and instead using bucket owner-enforced permissions (see https://docs.aws.amazon.com/AmazonS3/latest/userguide/ensure-object-ownership.html). The current configuration and implementation of the S3 publisher always applies an ACL, which simply doesn't work with buckets configured this way. This PR adds an
omitAcl
option to the config that simply omits the ACL from the upload command.I considered making this config look more like the Google Cloud Storage publisher (which uses essentially applies some of its options, such as
predefinedAcl
,public
, andprivate
, directly to its upload object); however, that would be a breaking change, and I opted for keeping this non-breaking. I'm happy to refactor if you think that is preferred.