Compute
Elastic Cloud Server
Huawei Cloud Flexus
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Networking
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Management & Governance
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
OneAccess
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
IAM Identity Center
Cloud Operations Center
Resource Governance Center
Migration
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Analytics
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
Data Lake Factory
DataArts Lake Formation
IoT
IoT Device Access
Others
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Security & Compliance
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Edge Security
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Web3 Node Engine Service
Media Services
Media Processing Center
Video On Demand
Live
SparkRTC
MetaStudio
Storage
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service Turbo
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Databases
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
Multi-Site High Availability Service
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Business Applications
Workspace
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Video Intelligent Analysis Service
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Content Delivery & Edge Computing
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Intelligent EdgeCloud
Solutions
SAP Cloud
High Performance Computing
Developer Services
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
CodeArts Repo
Cloud Application Engine
MacroVerse aPaaS
KooMessage
KooPhone
KooDrive

Upload Overview

Updated on 2024-10-24 GMT+08:00

Scenarios

You can upload files or folders to an existing OBS bucket. If you want to classify files, you can create folders and upload files to different folders.

For details about how to create a folder, see Creating a Folder.

These files can be texts, images, videos, or any other type of files.

NOTICE:

OBS allows you to upload objects to buckets in a specified region but is not aware of any content of your objects. If your object uploads involve cross-border transfer, ensure that your use complies with relevant laws and regulations.

Notes and Constraints

Size and number of objects to upload

  • OBS Console puts limits on the size and number of files you can upload.
    • In regions that support batch uploads, a maximum of 100 files can be uploaded at a time, with a total size of no more than 5 GB. If you upload only one file in a batch, this file cannot exceed 5 GB.
    • In regions that do not support batch uploads, only one file can be uploaded at a time, with a size of no more than 50 MB.
  • With OBS Browser+ or obsutil, you can upload files smaller than 48.8 TB. OBS Browser+ allows you to upload up to 500 files at a time. There is no limit on the number of files you can upload using obsutil at a time.
  • With PUT, POST, or append methods of the OBS SDKs or API, you can upload files smaller than 5 GB.
  • With multipart uploads of the OBS SDKs or API or resumable uploads of the OBS SDKs, you can upload files smaller than 48.8 TB.
  • You can specify a quota for a bucket to limit its space usage. For details, see Managing Bucket Quotas.

Object naming

See Guidelines on Naming Object Keys.

Batch operations

Batch uploads are available only when:
  1. The bucket is in any of the following regions: CN-Hong Kong, AP-Bangkok, or AP-Singapore.
  2. The bucket version is 3.0. To view the bucket version, see Checking OBS Version (OBS 2.0 or OBS 3.0).

Folder uploads

You can upload folders using OBS Console, OBS Browser+, or obsutil.

Others

  • Versioning is not enabled for a bucket:
    • If you upload a new file with the same name as the one in the bucket, the new file will automatically overwrite the previous one and the ACL information of the previous file will not be retained.
    • If you upload a new folder with the same name as the one 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.
  • If versioning is enabled for your bucket and 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.

Object Types

Object Type

Description

Notes

Normal

Objects that are uploaded using Streaming Upload (PUT) or Browser-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 operation on an object will create a new version of the object. The version generated by the most recent operation is the latest one.

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 operation on an assembled object will create a new version of the object. The version generated by the most recent operation is the latest one.

Appendable

Objects that are uploaded using Appendable Upload

You can directly append data to such objects.

Upload Methods

Upload Method

Description

Streaming upload (PUT)

Use PUT or POST if the size of the file to be uploaded is less than 5 GB.

If you use PUT, you need to specify the object name in the URL, but object name is not required with POST, which uses the bucket domain name as the URL. Request lines of these two methods are given as follows:

PUT /ObjectName HTTP/1.1
POST / HTTP/1.1

Browser-based upload (POST)

Multipart upload

Use this method when the size of the file to be uploaded is greater than 5 GB and less than 48.8 TB.

For details, see Multipart Upload.

NOTE:

If you have over 48.8 TB data to upload, refer to Migrating Local Data to OBS.

Resumable upload

Uploading large files often fails due to poor network conditions or program breakdowns. Re-uploads not only waste lost of resources, but may also fail again. To avoid such issues, you can use the resumable upload API, which works by dividing a to-be-uploaded file into multiple parts and then uploading them separately. This API helps save resources and improves efficiency by allowing for resumption from the break point and concurrent uploads.

For details, see Does OBS Support Resumable Data Transfer?

Incremental synchronization

This function synchronizes incremental content in a local source directory to the specified target bucket in OBS to ensure consistency. It works by comparing the source files in a local directory with their counterparts in the corresponding bucket in OBS and uploading only those with content changes, so all source files can remain identical to those uploaded to OBS.

For details, see Synchronously Uploading Incremental Objects.

Append upload

This method adds data to the end of an object in a specified bucket. If there is no object with the same key found in the bucket, a new object is created.

For details, see Appendable Upload.

Temporary upload authorization

If a third-party user does not have the upload permission, they can be granted temporary access to upload objects within a validity period.

For details, see Authorizing a Third Party to Upload Objects.

Ways to Upload

You can use OBS Console, APIs, SDKs, OBS Browser+, or obsutil to upload an object.

We use cookies to improve our site and your experience. By continuing to browse our site you accept our cookie policy. Find out more

Feedback

Feedback

Feedback

0/500

Selected Content

Submit selected content with the feedback