apache / apache/libcloud

providing ACL fails with SignatureDoesNotMatch

Open
#1,605 1 comment 0 reactions 0 assignees View on GitHub
stale
Dominant language
Python
Stars
2.1k
Forks
931
Avg merge
1d 2h
Merged PRs (30d)
4

Description

## Summary

When uploading a file to Storage (S3 or DigitalOcean Spaces), with the ACL header/parameter, the request fails with "SignatureDoesNotMatch" exception.

## Detailed Information
Demo code:
```py
container = ...
src = 'somefile.txt'
dst = 'somewhere/somefile.txt'
extra = {'acl': 'public-read'}
obj = driver.upload_object(src, container, dst, extra=extra)
```

Providing meta_data, and/or other information in the `extra` dict works just fine, it fails as soon as I provide any `acl` key/value.

- Libcloud version: 3.3.1
- Python version: 3.9.1

**Screenshots:**

AWS S3:

![Screenshot_1](https://user-images.githubusercontent.com/53948000/134159218-d51e6c0d-134f-4246-b0bc-518f35fcd894.png)

DigitalOcean Spaces:
![Screenshot_4](https://user-images.githubusercontent.com/53948000/134159275-96a70a40-9da5-4338-a081-a4a293178706.png)

Contributor guide

Open the contributing guide

Research direction

Start at the storage driver's upload_object entry point and trace how the extra dictionary is handled for S3 and DigitalOcean Spaces. Reproduce the supplied upload with extra={'acl': 'public-read'} and compare it with metadata-only uploads, then verify that ACL requests no longer fail with SignatureDoesNotMatch.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, python
Domain
cloud
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.