Skip to content

Commit

Permalink
Fix:s3 Presign Post with object acl (#3246)
Browse files Browse the repository at this point in the history
* Fix:s3 Presign Post with object acl

* Added import in tests

Co-authored-by: usmankb <usman@krazybee.com>
  • Loading branch information
usmangani1 and usmankb authored Sep 2, 2020
1 parent 3fb7cf7 commit d2e16ec
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
4 changes: 4 additions & 0 deletions moto/s3/responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -860,6 +860,10 @@ def _bucket_response_post(self, request, body, bucket_name):

new_key = self.backend.set_object(bucket_name, key, f)

if form.get("acl"):
acl = get_canned_acl(form.get("acl"))
new_key.set_acl(acl)

# Metadata
metadata = metadata_from_headers(form)
new_key.set_metadata(metadata)
Expand Down
33 changes: 33 additions & 0 deletions tests/test_s3/test_s3.py
Original file line number Diff line number Diff line change
Expand Up @@ -2800,6 +2800,39 @@ def test_put_bucket_acl_body():
assert not result.get("Grants")


@mock_s3
def test_object_acl_with_presigned_post():
s3 = boto3.client("s3", region_name=DEFAULT_REGION_NAME)

bucket_name = "imageS3Bucket"
object_name = "text.txt"
fields = {"acl": "public-read"}
file = open("text.txt", "w")
file.write("test")
file.close()

s3.create_bucket(Bucket=bucket_name)
response = s3.generate_presigned_post(
bucket_name, object_name, Fields=fields, ExpiresIn=60000
)

with open(object_name, "rb") as f:
files = {"file": (object_name, f)}
requests.post(response["url"], data=response["fields"], files=files)

response = s3.get_object_acl(Bucket=bucket_name, Key=object_name)

assert "Grants" in response
assert len(response["Grants"]) == 2
assert response["Grants"][1]["Permission"] == "READ"

response = s3.get_object(Bucket=bucket_name, Key=object_name)

assert "ETag" in response
assert "Body" in response
os.remove("text.txt")


@mock_s3
def test_put_bucket_notification():
s3 = boto3.client("s3", region_name=DEFAULT_REGION_NAME)
Expand Down

0 comments on commit d2e16ec

Please sign in to comment.