Updated on 2025-09-15 GMT+08:00

Upload Overview

Scenarios

You can upload files or folders to an existing OBS bucket. These files can be texts, images, videos, or any other types of files.

If you want to organize the files you upload, create folders first and upload each file to an appropriate folder. For details about how to create a folder, see Creating a Folder.

OBS allows you to upload objects to buckets in a specified region, but Huawei Cloud does not detect the object content you uploaded. If your object uploads involve cross-border transfer, ensure that your use complies with relevant laws and regulations.

Upload Methods

Method

Scenario

Single File Size

Object Type

Tool Supported

Simple upload (PUT)

For uploading small files

≤ 5 GB

Normal

OBS Console, OBS Browser+, obsutil, SDKs, and APIs

NOTE:

To improve the upload success rate, OBS Console automatically uses multipart upload for objects larger than 8 MB, and OBS Browser+ and obsutil automatically use resumable upload for objects larger than 50 MB.

Form-based upload (POST)

For uploading small files via HTML web pages. You can use the form's PostPolicy to limit the file size and type.

≤ 5 GB

Normal

APIs and SDKs

Multipart upload

For uploading large files. You need to make several API calls: one to initiate a multipart upload, others to upload parts, and a final call to complete the multipart upload. Once the upload is complete, the uploaded parts are assembled into a single, complete object.

If parts fail to be uploaded due to unstable network, you need to manually record the failed parts and upload them again.

≤ 48.8 TB

Multipart

OBS Console (for a total size of no more than 5 GB), OBS Browser+, obsutil, SDKs, and APIs

Resumable transfer

For uploading large files over unstable networks. Similar to multipart upload, a file is split into multiple parts and uploaded in parallel. However, with resumable transfer, the client automatically tracks the upload progress and resumes from the point where the upload was interrupted.

≤ 48.8 TB

Multipart

OBS Browser+, obsutil, and SDKs

Append upload

For continuously adding data to the end of an object. For example, in video streaming scenarios, an append upload is typically used. You can append data to the end of an appendable object that was created using the append upload API. The data appended each time can be read instantly.

The size of data appended each time: ≤ 5 GB

Appendable

APIs and SDKs

Third-party upload

For third parties to upload files. Anonymous users with upload permissions use their own AKs/SKs to generate time-limited pre-signed URLs. Within the validity period of the URLs, anonymous users can use the URLs to securely upload objects without keys. The URLs become invalid after they expire.

≤ 5 GB

Normal

Calculate a signature and construct a URL.

Batch Upload

Only buckets whose version is 3.0 support batch upload. To check the bucket version, see Checking OBS Version (OBS 2.0 or OBS 3.0). The following table lists the batch upload support across OBS tools.

Tool

Batch Upload Supported

Number of Objects Allowed in a Batch

Max. Total Object Size Allowed in a Batch

OBS Console

Yes, in some regions. For specific availability, see the information displayed on the console.

100

≤ 5 GB

OBS Browser+

Yes

500

Unlimited

obsutil

Yes

Unlimited

Unlimited

APIs

No dedicated batch upload API is available. To use batch uploads, you need to write your own code.

N/A

N/A

SDKs

N/A

N/A

Object Types

Object Type

Description

Notes

Normal

Objects that are uploaded using Simple Upload (PUT) or Form-based Upload (POST)

If versioning is not enabled or is suspended, a newly uploaded object overwrites the previous one with the same name and only the object uploaded by the last API call is retained.

If versioning is enabled, each upload of an object with the same name will create a new version of the object. The version created in the last upload is the latest version.

Multipart

Objects that are uploaded using Multipart Upload

If versioning is not enabled or is suspended, the complete object that is assembled later overwrites the previous one with the same name and only the complete object assembled by the last API call is retained.

If versioning is enabled, each time you assemble an object with the same name will create a new version of the object. The version created in the last multipart upload is the latest version.

Appendable

Objects that are uploaded using Appendable Upload

You can directly append data to the end of such objects.

Object Uploads in a Bucket with Versioning Enabled or Not Enabled

  • In a bucket with versioning not enabled:
    • If you upload a new file with the same name as the previous file in the bucket, the new file will overwrite the previous one, and the previous file's ACL information will not be retained.
    • If you upload a new folder with the same name as the previous folder in the bucket, the two folders will be merged, and files in the new folder will overwrite those with the same name in the previous folder.
  • In a bucket with versioning enabled:

    If you upload a new file with the same name as the one you previously uploaded to the bucket, a new file version will be added to the bucket. For details, see Versioning.

References