PUT Object

Use a PUT object request to:

Common request headers

The following are common request headers for PUT object requests.

HeaderDescriptionRequired
AuthorizationThe authentication string for the request.Yes
Content-LengthThe length of the request body without headers (in bytes).Yes1
Content-Type2The MIME type of the request body. If you do not specify a content type, Cloud Storage defaults toapplication/octet-stream when it serves the object.No (recommended)
Content-MD5The 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
DateThe date and time of the request.Yes
HostThe URI for Cloud Storage. For more information, seeRequest Endpoints.Yes
Transfer-EncodingIndicates if the message body was chunked. In requests that useV4 Signatures for their authentication, chunked uploads must also include the headerx-amz-decoded-content-length.No (except for requests that use chunked transfer encoding)
x-goog-if-generation-match2If 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-match2If 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 ifx-goog-if-generation is specified. By combining these two generation properties, you can implement safe read-modify-write updates.No
x-goog-storage-class2Gives an object a storage class besides the default storage class of the associated bucket.No
x-goog-user-projectThe 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 inPUT Object requests thatupload an object part.

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-17 UTC.