PutObject and DeleteObject should produce no XML

S3 itself produces an empty body, with any response metadata in HTTP
headers only.
This commit is contained in:
David Holroyd 2020-04-06 21:01:43 +01:00
parent 452e63977e
commit a845de1142

View File

@ -1232,9 +1232,8 @@ class ResponseObject(_TemplateEnvironmentMixin, ActionAuthenticatorMixin):
)
new_key.set_tagging(tagging)
template = self.response_template(S3_OBJECT_RESPONSE)
response_headers.update(new_key.response_dict)
return 200, response_headers, template.render(key=new_key)
return 200, response_headers, ""
def _key_response_head(self, bucket_name, query, key_name, headers):
response_headers = {}
@ -1552,8 +1551,7 @@ class ResponseObject(_TemplateEnvironmentMixin, ActionAuthenticatorMixin):
return 204, {}, ""
version_id = query.get("versionId", [None])[0]
self.backend.delete_key(bucket_name, key_name, version_id=version_id)
template = self.response_template(S3_DELETE_OBJECT_SUCCESS)
return 204, {}, template.render()
return 204, {}, ""
def _complete_multipart_body(self, body):
ps = minidom.parseString(body).getElementsByTagName("Part")
@ -1868,18 +1866,6 @@ S3_DELETE_KEYS_RESPONSE = """<?xml version="1.0" encoding="UTF-8"?>
{% endfor %}
</DeleteResult>"""
S3_DELETE_OBJECT_SUCCESS = """<?xml version="1.0" encoding="UTF-8"?>
<DeleteObjectResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01">
<Code>200</Code>
<Description>OK</Description>
</DeleteObjectResponse>"""
S3_OBJECT_RESPONSE = """<?xml version="1.0" encoding="UTF-8"?>
<PutObjectResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01">
<ETag>{{ key.etag }}</ETag>
<LastModified>{{ key.last_modified_ISO8601 }}</LastModified>
</PutObjectResponse>"""
S3_OBJECT_ACL_RESPONSE = """<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>