Make put-object-acl return 404 if the key does not exist (#3777)
Co-authored-by: Tibor Djurica Potpara <tibor.djurica@reddit.com>
This commit is contained in:
		
							parent
							
								
									b9f83c200f
								
							
						
					
					
						commit
						b06e77b604
					
				| @ -1305,8 +1305,11 @@ class ResponseObject(_TemplateEnvironmentMixin, ActionAuthenticatorMixin): | |||||||
|         if "acl" in query: |         if "acl" in query: | ||||||
|             key = self.backend.get_object(bucket_name, key_name) |             key = self.backend.get_object(bucket_name, key_name) | ||||||
|             # TODO: Support the XML-based ACL format |             # TODO: Support the XML-based ACL format | ||||||
|  |             if key is not None: | ||||||
|                 key.set_acl(acl) |                 key.set_acl(acl) | ||||||
|                 return 200, response_headers, "" |                 return 200, response_headers, "" | ||||||
|  |             else: | ||||||
|  |                 raise MissingKey(key_name) | ||||||
| 
 | 
 | ||||||
|         if "tagging" in query: |         if "tagging" in query: | ||||||
|             if "versionId" in query: |             if "versionId" in query: | ||||||
|  | |||||||
| @ -979,6 +979,17 @@ def test_acl_switching(): | |||||||
|     ), grants |     ), grants | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @mock_s3 | ||||||
|  | def test_acl_switching_nonexistent_key(): | ||||||
|  |     s3 = boto3.client("s3", region_name=DEFAULT_REGION_NAME) | ||||||
|  |     s3.create_bucket(Bucket="mybucket") | ||||||
|  | 
 | ||||||
|  |     with pytest.raises(ClientError) as e: | ||||||
|  |         s3.put_object_acl(Bucket="mybucket", Key="nonexistent", ACL="private") | ||||||
|  | 
 | ||||||
|  |     e.value.response["Error"]["Code"].should.equal("NoSuchKey") | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| @mock_s3_deprecated | @mock_s3_deprecated | ||||||
| def test_bucket_acl_setting(): | def test_bucket_acl_setting(): | ||||||
|     conn = boto.connect_s3() |     conn = boto.connect_s3() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user