Ignore S3 ACL for now since we do not implement it.

This commit is contained in:
Steve Pulec 2014-08-13 22:13:17 -04:00
parent 0bb3ecd1d5
commit 64ed605c14
2 changed files with 23 additions and 2 deletions

View File

@ -253,7 +253,7 @@ class ResponseObject(object):
if method == 'GET': if method == 'GET':
return self._key_response_get(bucket_name, query, key_name, headers) return self._key_response_get(bucket_name, query, key_name, headers)
elif method == 'PUT': elif method == 'PUT':
return self._key_response_put(request, body, bucket_name, query, key_name, headers) return self._key_response_put(request, parsed_url, body, bucket_name, query, key_name, headers)
elif method == 'HEAD': elif method == 'HEAD':
return self._key_response_head(bucket_name, key_name, headers) return self._key_response_head(bucket_name, key_name, headers)
elif method == 'DELETE': elif method == 'DELETE':
@ -284,7 +284,7 @@ class ResponseObject(object):
else: else:
return 404, headers, "" return 404, headers, ""
def _key_response_put(self, request, body, bucket_name, query, key_name, headers): def _key_response_put(self, request, parsed_url, body, bucket_name, query, key_name, headers):
if 'uploadId' in query and 'partNumber' in query: if 'uploadId' in query and 'partNumber' in query:
upload_id = query['uploadId'][0] upload_id = query['uploadId'][0]
part_number = int(query['partNumber'][0]) part_number = int(query['partNumber'][0])
@ -305,6 +305,10 @@ class ResponseObject(object):
storage_class = request.headers.get('x-amz-storage-class', 'STANDARD') storage_class = request.headers.get('x-amz-storage-class', 'STANDARD')
if parsed_url.query == 'acl':
# We don't implement ACL yet, so just return
return 200, headers, ""
if 'x-amz-copy-source' in request.headers: if 'x-amz-copy-source' in request.headers:
# Copy key # Copy key
src_bucket, src_key = request.headers.get("x-amz-copy-source").split("/", 1) src_bucket, src_key = request.headers.get("x-amz-copy-source").split("/", 1)

View File

@ -589,3 +589,20 @@ def test_list_versions():
versions[1].name.should.equal('the-key') versions[1].name.should.equal('the-key')
versions[1].version_id.should.equal('1') versions[1].version_id.should.equal('1')
versions[1].get_contents_as_string().should.equal("Version 2") versions[1].get_contents_as_string().should.equal("Version 2")
@mock_s3
def test_acl_is_ignored_for_now():
conn = boto.connect_s3()
bucket = conn.create_bucket('foobar')
content = 'imafile'
keyname = 'test.txt'
key = Key(bucket, name=keyname)
key.content_type = 'text/plain'
key.set_contents_from_string(content)
key.make_public()
key = bucket.get_key(keyname)
assert key.get_contents_as_string() == content