# API Overview

#### API Operations on Buckets

Table 1 API operations on buckets
Operation | Description
--- | ---
Listing Buckets | Queries the list of buckets created by the user.
Creating a Bucket | Creates a bucket. You can add different request headers to specify the region, storage class, and permission control policy.
Listing Objects in a Bucket | Lists objects in a bucket. You can add different request headers to obtain objects that match the specified prefix, identifier, and other requirements.
Obtaining Bucket Metadata | Checks whether the bucket metadata exists. You can query the information about the bucket region, storage class, OBS version number, enterprise project ID, and CORS configuration.
Obtaining Bucket Location | Obtains the bucket region information.
Deleting Buckets | Deletes a specified bucket. Before deleting a bucket, ensure that the bucket is empty.

#### API Operations on Advanced Bucket Settings

Table 2 API operations on advanced bucket settings
Operation | Description
--- | ---
Configuring a Bucket Policy | Creates or modifies a bucket policy. If the specified bucket already has a policy, the policy in the request will overwrite the existing one.
Obtaining Bucket Policy Information | Obtains the policy information of a specified bucket.
Deleting a Bucket Policy | Deletes the policy of a specified bucket.
Configuring a Bucket ACL | Configures the ACL of a specified bucket. You can control the read and write permissions of a bucket through ACL settings.
Obtaining Bucket ACL Information | Obtains the ACL information of a specified bucket.
Configuring Logging for a Bucket | Enables or disables the log management function of a bucket. When this function is enabled, a log record is generated for each operation on a bucket. Multiple log records are packed into a log file, which will be saved in a specified location.
Obtaining a Bucket Logging Configuration | Obtains the logging configuration of the current bucket.
Configuring Bucket Lifecycle Rules | Configures rules to automatically delete or migrate objects in a bucket.
Obtaining Bucket Lifecycle Configuration | Obtains the lifecycle rules configured for a specified bucket.
Deleting Lifecycle Rules | Deletes the lifecycle configuration of a bucket.
Configuring Versioning for a Bucket | Enables or disables versioning for a bucket. When this function is enabled, objects of different versions can be retrieved and restored, and data can be quickly restored in case of accidental operations or application faults.
Obtaining Bucket Versioning Status | Obtains the versioning status of a specified bucket.
Configuring Event Notification for a Bucket | Configures the event notification for a bucket to ensure that the bucket owner is notified about events occur on the bucket in a secure and timely manner.
Obtaining the Event Notification Configuration of a Bucket | Obtains the notification configuration of a bucket.
Configuring Storage Class for a Bucket | Creates or updates the default storage class configuration of a bucket.
Obtaining Bucket Storage Class Information | Obtains the default storage class configuration of a bucket.
Configuring Tags for a Bucket | Adds a tag to an existing bucket. After tags are added to a bucket, all charging data records (CDRs) generated by the requests for this bucket will have the same tags. Thus, CDR reports can be categorized for detailed cost analysis.
Obtaining Bucket Tags | Obtains the tags of a specified bucket.
Deleting Tags | Deletes the tags of a specified bucket.
Configuring Bucket Storage Quota | Sets the bucket space quota to limit the maximum storage capacity of the bucket.
Querying Bucket Storage Quota | Obtains the bucket space quota.
Querying Information About Used Space in a Bucket | Obtains the number of objects in a bucket and the space occupied by the objects.
Configuring a Custom Domain Name for a Bucket | Configures a custom domain name for a bucket. Once a user-defined domain name is successfully configured, the bucket can be accessed through the user-defined domain name.
Obtaining the Custom Domain Name of a Bucket | Queries the custom domain name of a bucket.
Deleting the Custom Domain Name of a Bucket | Deletes the custom domain name of a bucket.
Configuring Bucket Encryption | Creates or updates the default server-side encryption configuration for a bucket. After encryption is enabled for a bucket, objects uploaded to the bucket are encrypted with the encryption configuration the bucket.
Obtaining Bucket Encryption Configuration | Queries the default server-side encryption configuration of a bucket.
Deleting the Encryption Configuration of a Bucket | Deletes the default server-side encryption configuration of a bucket.

#### API Operations for Static Website Hosting

Table 3 API Operations for Static Website Hosting
Operation | Description
--- | ---
Configuring Static Website Hosting for a Bucket | Creates or updates the website hosting configuration of a bucket. OBS allows you to store static web page resources such as HTML web pages, flash files, videos, and audios in a bucket. When a client accesses these resources from the website endpoint of the bucket, the browser can directly resolve and present the resources to the client.
Obtaining the Static Website Hosting Configuration of a Bucket | Obtains the website hosting configuration of a bucket.
Deleting the Static Website Hosting Configuration of a Bucket | Deletes the website hosting configuration of a bucket.
Configuring Bucket CORS | Configures the cross-origin resource sharing (CORS) configuration of a bucket. OBS allows static web page resources to be stored in buckets. The buckets can be used as website resources. A website hosted by OBS can respond to cross-domain requests from another website only after the CORS rule is configured.
Obtaining the CORS Configuration of a Bucket | Obtains the CORS configuration of a bucket.
Deleting the CORS Configuration of a Bucket | Deletes the CORS configuration of a bucket.
OPTIONS Bucket | Checks whether the client has the permission to perform operations on the server. It is usually performed before the cross-domain access.
OPTIONS Object | Checks whether the client has the permission to perform operations on the server. It is usually performed before the cross-domain access.

#### API Operations on Objects

Table 4 API operations on objects
Operation | Description
--- | ---
Uploading Objects - PUT | Uploads simple objects to a specified bucket.
Uploading Objects - POST | Uploads objects to a specified bucket based on tables.
Copying Objects | Creates a copy for an existing object in OBS.
Downloading Objects | Downloads objects.
Querying Object Metadata | Obtains the object metadata. Information such as object expiration time, version number, and CORS configuration is the object metadata.
Deleting an Object | Deletes a specified object. You can also carry the versionId field to delete the specified object version.
Deleting Objects | Deletes a batch of objects from a bucket permanently. Objects deleted in this way cannot be recovered.
Restoring Cold Objects | Restores Cold objects. These objects must be restored before they can be downloaded.
Configuring an Object ACL | Configures the ACL of a specified object. You can control the read and write permissions of objects through ACL settings.
Obtaining Object ACL Configuration | Obtains the ACL configuration of a specified object.

#### API Operations for Multipart Tasks

Table 5 API operations for multipart tasks
Operation | Description
--- | ---
Listing Initialized Multipart Tasks in a Bucket | Queries all the multipart upload tasks that have not been merged or canceled in a bucket.
Initializing a Multipart Task | Initiates a multipart upload task, and obtains the globally unique multipart upload task ID for subsequent operations, such as uploading, merging, and listing parts.
Multipart Upload | Uploads parts for a specific multipart task.
Uploading a Part of an Object - Copy | Copies an object or a part of the object as a part of a multipart task.
Listing Uploaded Parts of an Object | Queries information about all parts of a multipart task.
Merging Parts into a Complete Object | Merges the specified parts into a complete object.
Canceling a Multipart Upload Task | Cancels a multipart upload task.