PUT Object Stay organized with collections Save and categorize content based on your preferences.
Use a PUT object request to:
- Upload an Object
- Upload an Object Part
- Copy an Object
- Compose an Object
- Set Object ACLs
- Set Object Retention
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 toapplication/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, seeRequest Endpoints. | Yes |
Transfer-Encoding | Indicates 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-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 ifx-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 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.