Exception AccessControlListNotSupported thrown with version 2023.9.0
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1k
- Forks
- 305
- Avg merge
- 22h 37m
- Merged PRs (30d)
- 4
Description
Reproduce
To reproduce in a Databricks environment 12.2 LTS:
import s3fs
s3 = s3fs.S3FileSystem(anon=False)
with s3.open(output_path, 'wb') as f:
f.write(b'abc')
# --> OSError: [Errno 5] An error occurred (AccessControlListNotSupported) when calling the PutObject operation: The bucket does not allow ACLs
It works with 2023.6.0 but not with 2023.9.0.
Note:
- The bucket is configured with "Object Ownership: Bucket owner enforced".
- There is no problem when using a pure Python environment (with full control over all library versions).
Cause
It might be due to the recently released #764 (default ACL has value "private").
Any guidance how to deal with this problem (apart from downgrading)?
Installed libraries (selection)
pip freeze
aiobotocore==2.5.4
awscli==1.29.40
boto3==1.16.7
botocore==1.31.17
fsspec==2023.9.0
s3fs==2023.9.0
s3transfer==0.6.2
...
Note: Pip reports some incompatibilities among these library versions.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with issue #764 and the S3FileSystem/open path shown in the reproduction, then compare behavior between versions 2023.6.0 and 2023.9.0 in the stated Databricks environment. Done means writing to a bucket configured with Object Ownership: Bucket owner enforced no longer raises AccessControlListNotSupported, without requiring a downgrade.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, python
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100