PUT Object

Use a PUT object request to:

Common request headers

The following are common request headers for PUT object requests.

Header Description Required
Authorization The authentication string for the request. Yes
Content-Length The length of the request body without headers (in bytes). Yes1
Content-Type2 The MIME type of the request body. If you do not specify a content type, Cloud Storage defaults to application/octet-stream when it serves the object. No (recommended)
Content-MD5 The MD5 digest of the request message without headers. While not required, this header is generally recommended as a data integrity check to verify that the data received by Cloud Storage is the same as the data that was intended to be sent. No
Date The date and time of the request. Yes
Host The URI for Cloud Storage. For more information, see Request Endpoints. Yes
Transfer-Encoding Indicates if the message body was chunked. In requests that use V4 Signatures for their authentication, chunked uploads must also include the header x-amz-decoded-content-length. No (except for requests that use chunked transfer encoding)
x-goog-if-generation-match2 If the generation you specify is the same as the object you're replacing, then the object is replaced. You can also specify 0 as a special value to indicate that the new object is only created if there is no existing object. No
x-goog-if-metageneration-match2 If the metageneration you specify is the same as the object you're trying to update, then the object metadata is updated. This is only allowed if x-goog-if-generation is specified. By combining these two generation properties, you can implement safe read-modify-write updates. No
x-goog-storage-class2 Gives an object a storage class besides the default storage class of the associated bucket. No
x-goog-user-project The project to be billed for charges associated with the request. No

1 Not required for requests that use chunked transfer encoding.

2 This header is not applicable in PUT Object requests that upload an object part.