Updated on 2025-11-07 GMT+08:00

Functions

This section describes main functions of OBS. You can check if a function is available in a region on OBS Console.

It is recommended that you get familiar with the basic concepts of OBS before using OBS.

Tools

OBS offers a range of tools, including OBS Browser+, obsfs, and obsutil, for data migration and management in different scenarios.

You can use these tools to easily manage OBS resources, including creating buckets, mounting parallel file systems, and uploading or downloading objects. For more information, see OBS Tools.

APIs

OBS offers REST APIs that support HTTP and HTTPS. You can make API calls to create, modify, and delete buckets, as well as to upload, download, or delete objects. For more information, see API Overview.

SDKs

OBS offers SDKs in different programming languages: Java, Python, C, Go, BrowserJS, .NET, Android, iOS, PHP, and Node.js. You can use these SDKs for easy secondary development. For more information, see SDK Overview.

Bucket Management

Buckets are containers that store objects in OBS. Each bucket has its own properties, such as storage class, access control, and region. You can create buckets with different properties across regions and configure advanced properties to meet diverse storage needs.

On OBS, you can easily create, list, search for, view, or delete buckets. For more information, see Bucket Management.

Object Management

Objects are basic entities stored in OBS. An object consists of file data and metadata that describes the file. Data uploaded to OBS is stored as objects in buckets. You can upload, download, list, and search for objects. Resumable transfer, multipart uploads, and other operations are also supported. For more information, see Object Management.

Parallel File System

Parallel File System (PFS) is a high-performance file system with access latency in milliseconds. PFS supports TB/s-level bandwidth and millions of IOPS, which makes it ideal for high-performance computing (HPC) workloads.

You can call OBS APIs to read data in a parallel file system. You can also use obsfs to mount a parallel file system to a Linux cloud server. Once mounted, you can manage files and directories just as you would in a local file system. For more information, see Parallel File System Overview.

Storage Classes

OBS offers the Archive, Infrequent Access, and Standard storage classes for buckets and objects. These storage classes can meet different performance and cost requirements.

  • The Standard storage class features low latency and high throughput. It is ideal for storing frequently accessed (multiple times per month) files or small files (smaller than 1 MB). Common application scenarios include big data analytics, mobile apps, hot videos, and social apps.
  • The Infrequent Access storage class is for storing data that is infrequently (less than 12 times per year) accessed, but when needed, the access has to be fast. Its application scenarios include file synchronization, file sharing, and enterprise backups. This storage class has the same durability, throughput, and access latency as the Standard storage class, but at a lower cost. However, its availability is slightly lower than that the Standard storage class.
  • The Archive storage class is ideal for storing data that is rarely (once per year) accessed. Its application scenarios include data archive and long-term backups. The Archive storage class is secure, durable, and inexpensive. It can be used to replace tape libraries. However, to keep cost low, it may take hours to restore data from the Archive storage class.

When creating a bucket, you can specify a storage class for it. Similarly, when uploading an object, you can specify a storage class for it too. You can also use lifecycle rules to move objects between storage classes. For more information, see Storage Class.

Permissions Management

OBS uses IAM permissions, bucket policies, object policies, and ACLs for access control. You can grant access to different accounts and users. You can also configure policies or ACLs for buckets and objects to control read and write permissions for them. For more information, see Permissions Management.

User-Defined Domain Names

You can bind a user-defined domain name to an OBS bucket and then use this domain name to access data in the bucket. For example, if you need to migrate files from a website to OBS while keeping the website address unchanged, you can bind the website domain name to an OBS bucket.

For more information, see Configuring a User-Defined Domain Name.

Static Website Hosting

Static websites usually contain static web pages and scripts (such as JavaScript and Flash) that can run on clients.

You can upload static website files to your OBS bucket, grant anonymous users read permissions for these files, and configure static website hosting for the bucket to host them. After the hosting is complete, you can access the static website using the bucket domain name. For more information, see Static Website Hosting.

CORS

Cross-origin resource sharing (CORS) is a browser-standard mechanism defined by the World Wide Web Consortium (W3C). It allows a web client in one origin to interact with resources in another. For general web page requests, website scripts and contents in one origin cannot interact with those in another because of Same Origin Policies (SOPs). OBS supports CORS rules that allow the resources in OBS to be accessed across origins.

With CORS, JavaScript and HTML5 web applications can directly access resources in OBS without relying on proxy servers. You can also use the drag-and-drop of HTML5 to upload files to OBS (with the upload progress displayed) or update OBS content from web applications.

External web pages, style sheets, and HTML5 applications hosted in different origins can reference web fonts or pictures stored in OBS. This enables resource sharing.

For more information, see Configuring CORS.

URL Validation

Some rogue websites may steal links from other websites to enrich their content without any costs. Link stealing hurts the interests of the original websites and it is also a strain on their servers. URL validation is designed to address this issue.

URL validation protects your data in OBS from being stolen using the Referer field in HTTP requests. Such authorization is controlled using whitelists and blacklists. For more information, see Configuring URL Validation.

Object Sharing

You can share a file or folder stored in OBS with all users by using a temporary URL. All shared URLs are only valid for the specified period of time. You can temporarily share objects on OBS Console or OBS Browser+. To permanently share objects, you can configure a bucket policy or an object policy. For more information, see Sharing an Object.

Direct Reading

By default, objects in the Archive storage class must be restored before you can download them. However, if you enable direct reading for a bucket, you can directly download Archive objects from the bucket without restoring them first. Direct reading is a billable function. For more information, see Direct Reading.

Server-Side Encryption

OBS supports server-side encryption to protect stored data. You can enable server-side encryption during bucket creation or for an existing bucket. Once enabled, objects later uploaded to that bucket will be automatically encrypted. You can also enable server-side encryption when uploading objects. Note that OBS does not encrypt the objects that were uploaded before server-side encryption was enabled.

When you upload an object, OBS encrypts the data and stores the ciphertext on the server. When you download the encrypted object, OBS decrypts the ciphertext on the server and then returns the plaintext to you.

There are three server-side encryption methods: SSE-KMS, SSE-C, and SSE-OBS. For more information, see Configuring Bucket Server-Side Encryption.

Lifecycle Management

You can define lifecycle rules to periodically delete objects from buckets or transition objects between storage classes.

You may define lifecycle rules to:

  • Periodically delete log files that are only meant to be retained for a specific period of time (a week or a month).
  • Transition documents that are seldom accessed to the Infrequent Access or Archive storage class or delete them.
  • Delete a large number of objects from a bucket in a batch.

For more information, see Configuring a Lifecycle Rule.

Tags

Tags make it easier to identify and classify OBS buckets. If you add tags to a bucket, service detail records (SDRs) generated for it will be labeled with these tags. You can classify SDRs by tag for effective cost analysis. For example, if you have an application that uploads its running data to a bucket, you can tag the bucket with the application name. By doing so, you can use the application name tag to help analyze the costs on the application. For more information, see Adding Tags to a Bucket.

You can add tags to objects to categorize storage. You can add tags when uploading objects or add tags to existing objects. For more information, see Adding Tags to an Object.

Bucket Inventories

You can configure an inventory for OBS to periodically scan the specified objects, list the objects with their metadata (such as the size, modification time, and storage class) in a CSV file, and store the file into the specified bucket. For more information, see Bucket Inventories.

Logging

You can enable logging for bucket analysis or audit. After logging is enabled for a bucket, OBS automatically logs access requests for the bucket and writes the log files into the specified bucket. With access logs, the bucket owner can deeply analyze the characteristics, types, or trends of the requests. For more information, see Configuring Logging for a Bucket.

Append Upload

You can call the AppendObject API to write new data to an appendable object in a specified bucket.

Objects created by calling the AppendObject API are appendable, while those created by calling the PutObject API are normal ones. A normal object is read-only and cannot be modified. In scenarios where data is continuously created in real time, you can append data to objects. Each appended piece of data becomes readable once it is successfully written. For more information, see Appending Data to an Object.

Object Metadata

Metadata is a set of name-value pairs that describe an object. It can be used for object management.

There are two types of OBS metadata: system-defined metadata and user-defined metadata.

  • There are also two types of system-defined metadata: system-controlled and user-controlled. Metadata like Last-Modified is system-controlled and cannot be modified. Metadata such as ContentLanguage and Expires are user-controlled and can be modified.
  • You can add user-defined metadata headers that start with x-obs-meta- for easy object management.

You can add, modify, or delete user-controlled metadata of uploaded objects. For more information, see Configuring Object Metadata.

Storage Quota

You can set a limit on how much data a bucket can store. The maximum value is 263 – 1, in bytes. By default, a newly created bucket has no such limit. For more information, see Configuring Bucket Storage Quota.

Fragment Management

In a multipart upload, there will be fragments if the upload fails in case of the following and other possible events: disconnections between the OBS server and your local ends due to poor network conditions, manual interruptions, device failures, or unexpected power outage.

The fragments are stored in OBS. You should delete them regularly to free up storage space. For more information, see Managing Fragments.

Enterprise Project

Enterprise projects allow you to categorize resources and services. You can group resources and services from different regions within the same enterprise project. For example, you can create several enterprise projects based on your company's divisions or projects, and then add your resources to these enterprise projects accordingly.

When you create a bucket, you can specify an enterprise project for it. This helps simply resource and permission management. For more information, see Creating a Bucket.

Versioning

When versioning is enabled for a bucket, OBS can keep multiple versions of an object in the bucket. That way you can quickly retrieve and restore every object version as needed, or recover data from both accidental actions and application failures.

By default, versioning is not enabled for new OBS buckets. In this case, if the object you upload has the same name as the one you previously uploaded to the bucket, the new object will overwrite the previous one. If you want to retain multiple versions of an object, enable versioning. For more information, see Versioning.

Monitoring

In the use of OBS, you may continuously send PUT and GET requests that generate upload and download traffic or receive error responses from the server. You can use Cloud Eye to monitor your OBS buckets, report alarms, and send notifications. With the help of Cloud Eye, you can have a clear understanding of the requests, traffic, and error responses of your buckets. For more information, see Monitoring.

Audit

Cloud Trace Service (CTS) is a professional log audit service. It keeps track of operations on buckets and objects in OBS. You can query the records from CTS for security analysis, compliance audit, resource tracking, and fault locating. For more information, see Using CTS to Audit OBS.