The Cloud Storage XML API supports several standard HTTP request methods.
Each method can use numerous request headers and response headers. The XML API
documentation describes all of the supported HTTP methods as well as the most
frequently used headers for each method.

Some methods are used to work with both data and metadata depending on context.
For example, you can use one PUT Bucket request to create a bucket followed by a
second PUT Bucket request to configure logging for the bucket.

The following list shows which XML API method you use to accomplish
bucket and object tasks.

- [GET Service](https://docs.cloud.google.com/storage/docs/xml-api/get-service.md.txt)
  - List Buckets in the project
- [DELETE Bucket](https://docs.cloud.google.com/storage/docs/xml-api/delete-bucket.md.txt)
  - Delete a Bucket
- [GET Bucket](https://docs.cloud.google.com/storage/docs/xml-api/get-bucket.md.txt)
  - [List Objects in a Bucket](https://docs.cloud.google.com/storage/docs/xml-api/get-bucket-list.md.txt)
  - [List Multipart Uploads in a Bucket](https://docs.cloud.google.com/storage/docs/xml-api/get-bucket-uploads.md.txt)
  - [Get Bucket ACLs](https://docs.cloud.google.com/storage/docs/xml-api/get-bucket-acls.md.txt)
  - [Get Bucket Metadata](https://docs.cloud.google.com/storage/docs/xml-api/get-bucket-metadata.md.txt)
- [HEAD Bucket](https://docs.cloud.google.com/storage/docs/xml-api/head-bucket.md.txt)
  - Checks bucket existence
- [POST Bucket](https://docs.cloud.google.com/storage/docs/xml-api/post-bucket.md.txt)
  - Delete multiple objects
- [PUT Bucket](https://docs.cloud.google.com/storage/docs/xml-api/put-bucket.md.txt)
  - [Creates a Bucket](https://docs.cloud.google.com/storage/docs/xml-api/put-bucket-create.md.txt)
  - [Set Bucket ACLs](https://docs.cloud.google.com/storage/docs/xml-api/put-bucket-acls.md.txt)
  - [Set Bucket Metadata](https://docs.cloud.google.com/storage/docs/xml-api/put-bucket-metadata.md.txt)
- DELETE Object
  - [Delete an object](https://docs.cloud.google.com/storage/docs/xml-api/delete-object.md.txt)
  - [Abort a multipart upload](https://docs.cloud.google.com/storage/docs/xml-api/delete-multipart.md.txt)
- [GET Object](https://docs.cloud.google.com/storage/docs/xml-api/get-object.md.txt)
  - [Download an Object](https://docs.cloud.google.com/storage/docs/xml-api/get-object-download.md.txt)
  - [List Object Parts](https://docs.cloud.google.com/storage/docs/xml-api/get-object-multipart.md.txt)
  - [List Object ACLs](https://docs.cloud.google.com/storage/docs/xml-api/get-object-acls.md.txt)
  - [Get Object Encryption](https://docs.cloud.google.com/storage/docs/xml-api/get-object-encryption.md.txt)
  - [Get Object Retention](https://docs.cloud.google.com/storage/docs/xml-api/get-object-retention.md.txt)
- [HEAD Object](https://docs.cloud.google.com/storage/docs/xml-api/head-object.md.txt)
  - Gets Object Metadata
- [POST Object](https://docs.cloud.google.com/storage/docs/xml-api/post-object.md.txt)
  - [Initiate a Resumable Upload](https://docs.cloud.google.com/storage/docs/xml-api/post-object-resumable.md.txt)
  - [Initiate a Multipart Upload](https://docs.cloud.google.com/storage/docs/xml-api/post-object-multipart.md.txt)
  - [Complete a Multipart Upload](https://docs.cloud.google.com/storage/docs/xml-api/post-object-complete.md.txt)
  - [Upload an Object with a Form](https://docs.cloud.google.com/storage/docs/xml-api/post-object-forms.md.txt)
- [PUT Object](https://docs.cloud.google.com/storage/docs/xml-api/put-object.md.txt)
  - [Upload an Object](https://docs.cloud.google.com/storage/docs/xml-api/put-object-upload.md.txt)
  - [Upload an Object Part](https://docs.cloud.google.com/storage/docs/xml-api/put-object-multipart.md.txt)
  - [Copy an Object](https://docs.cloud.google.com/storage/docs/xml-api/put-object-copy.md.txt)
  - [Compose an Object](https://docs.cloud.google.com/storage/docs/xml-api/put-object-compose.md.txt)
  - [Set Object ACLs](https://docs.cloud.google.com/storage/docs/xml-api/put-object-acls.md.txt)
  - [Set Object Retention](https://docs.cloud.google.com/storage/docs/xml-api/put-object-retention.md.txt)
- [GET HMAC Key](https://docs.cloud.google.com/storage/docs/xml-api/get-hmac-list.md.txt)
- [POST HMAC Key](https://docs.cloud.google.com/storage/docs/xml-api/post-hmac-key.md.txt)
  - [Create an HMAC key](https://docs.cloud.google.com/storage/docs/xml-api/post-hmac-create.md.txt)
  - [Update an HMAC key](https://docs.cloud.google.com/storage/docs/xml-api/post-hmac-update.md.txt)
  - [Delete an HMAC key](https://docs.cloud.google.com/storage/docs/xml-api/post-hmac-delete.md.txt)

## Conventions used

Conventions used in the XML API documentation:

- The `Authorization` header is represented as `<authentication string>`. If
  you are using the XML API to migrate from another storage provider, then the
  `Authorization` has the format discussed in
  [Authentication in a Simple Migration Scenario](https://docs.cloud.google.com/storage/docs/aws-simple-migration.md.txt#authentication).
  Otherwise, the `Authorization` header has the format
  discussed in [OAuth 2.0 Authentication](https://docs.cloud.google.com/storage/docs/migrating.md.txt#fully-migrate).

  If you don't provide authorization information when required to perform a
  request, the Cloud Storage issues a 401 unauthorized error. For more
  information, see [Status Codes](https://docs.cloud.google.com/storage/docs/xml-api/reference-status.md.txt).
- The `Host` header used in the XML API documentation is of the form:

  ```
  Host: BUCKET-NAME.storage.googleapis.com
  ```
  where the bucket name is specified as part of the hostname. In all operations except GET service, you can also specify the bucket as part of the URL path. For more information, see [Request Endpoints](https://docs.cloud.google.com/storage/docs/request-endpoints.md.txt).

  <br />