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 |
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
- If you have over 48.8 TB data to upload, refer to Migrating Local Data to OBS.
- You can specify a quota for a bucket to limit its storage capacity. For details, see Managing Bucket Quotas.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot