Diese Seite ist in Ihrer lokalen Sprache noch nicht verfügbar. Wir arbeiten daran, weitere Sprachversionen hinzuzufügen. Vielen Dank für Ihre Unterstützung.
- What's New
- Function Overview
- Product Notices
- Service Overview
- Billing
- Getting Started
- User Guide
-
Console Operation Guide
- Console Function Overview
- Web Browser Compatibility
- Getting Started
- Managing Buckets
- Managing Objects
- Permissions Control
- Data Management
- Data Access
- Data Security
- Monitoring and Logging
- Task Center
- Related Operations
- Troubleshooting
- Error Code List
-
Permissions Configuration Guide
- Introduction to OBS Access Control
- Permission Control Mechanisms
- Access Requests
- Typical Permission Control Scenarios
-
Configuration Cases in Typical Permission Control Scenarios
-
Granting Permissions to an IAM User Under the Current Account
- Granting an IAM User the Permissions Required to List and Create Buckets
- Granting an IAM User the Read/Write Permission for a Bucket
- Granting an IAM User the Specified Permissions for a Bucket
- Granting an IAM User the Read Permission for Specific Objects
- Granting an IAM User the Specified Permissions for Certain Objects
-
Granting Permissions to Multiple IAM Users or User Groups Under the Current Account
- Granting IAM User Groups All Permissions for All OBS Resources
- Granting IAM User Groups Basic Permissions for All OBS Resources
- Granting IAM User Groups the Specified Permissions for All OBS Resources
- Granting IAM User Groups the Specified Permissions for Certain OBS Resources
- Granting IAM User Groups the Specified Permissions for a Folder
-
Granting Permissions to Other Accounts
- Granting Other Accounts the Read/Write Permission for a Bucket
- Granting Other Accounts the Specified Permissions for a Bucket
- Granting IAM Users Under an Account the Access to a Bucket and the Resources in It
- Granting Other Accounts the Read Permission for Certain Objects
- Granting Other Accounts the Specified Permissions for Certain Objects
- Granting Permissions to Anonymous Users
- Granting Temporary Access to OBS
- Restricting Access to a Bucket for Specific IP Addresses
-
Granting Permissions to an IAM User Under the Current Account
- Appendix
- Change History
- Feature Guide
-
Tools Guide
-
OBS Browser+
- Introduction
- OBS Browser+ Function Overview
- Downloading OBS Browser+
- Installing OBS Browser+
- Logging In to OBS Browser+
- Basic Bucket Operations
- Advanced Bucket Settings
- Object Operations
- Task Management
- Best Practices
-
FAQs
- Where Can I Obtain Access Keys (AK and SK)?
- Where Can I Obtain an IAM User ID?
- Can I Install Two OBS Browser+ Tools from Different Sites in One System?
- What Are the Differences Between OBS Browser+ and OBS Browser?
- Does OBS Browser+ Support the Migration of Account and Task Information From OBS Browser?
- Why Does the Task Processing Speed Slow After the Number of Tasks Exceeds a Million?
- Why Are the Displayed Number of Objects and Used Storage Capacity Different from the Actual Number of Objects and Storage Capacity?
- Why Is the Deliver Attribute Configured Using an SDK Overwritten to False After I Configure a Bucket ACL on OBS Browser+?
- What If "Login request denied." Is Displayed When I Try to Log In to OBS Browser+ Using an Account?
- What If "Failed to obtain the user token from IAM." Is Displayed When I Try to Log In to OBS Browser+ Using an Account?
- What If Message "Incorrect Account or Password" Is Displayed When I Try to Log In to OBS Browser+ Using an Account?
- Will Incremental Upload Be Used in Auto Upload Tasks?
- How Can I Permanently Share Files or Folders with Other Users?
- How Can I Access a Specific Bucket or Directory?
- Can I Cancel the Directory Sharing After a Directory Has Been Shared with Others?
- Can I Query the Number and Size of Files in a Folder?
- How Do I Troubleshoot a DNS Resolution Failure?
- Can OBS Browser+ List Objects with Special Characters in Their Names?
- Why Are Objects Always in the Restoring State?
- Uninstalling OBS Browser+
-
obsutil
- Introduction to obsutil
- Downloading and Installing obsutil
- Getting Started
- Bucket Commands
-
Object Commands
- Creating a Folder
- Uploading an Object
- Querying Object Properties
- Setting Object Properties
- Listing Objects
- Copying an Object
- Moving an Object
- Downloading an Object
- Generating the Download Link of an Object
- Deleting an Object
- Synchronously Uploading Incremental Objects
- Synchronously Copying Incremental Objects
- Synchronously Downloading Incremental Objects
- Restoring Objects from the Archive Storage
- Resuming a Failed Upload Task
- Resuming a Failed Copy Task
- Resuming a Failed Download Task
- Listing Multipart Upload Tasks
- Deleting a Multipart Upload Task
- Creating an Authorization Code for Directory Sharing
- Listing Objects by Using an Authorization Code
- Downloading Objects by Using an Authorization Code
- Auxiliary Commands
- Common Examples
- Fault Locating
-
Best Practices
- Using the obsutil help Command to Search for Functions
- Configuring Scheduled Tasks Using the Crontab Command
- Setting obsutil Commands as Built-in Commands
- Configuring Auto Obtaining of Access Keys for obsutil
- Fine-Tuning obsutil Performance
- Using obsutil for Resumable Data Transfer
- Using obsutil to Upload a Symbolic Link
- Configuring an HTTP Proxy for obsutil
- Using obsutil to Share Directories
- Using obsutil to Replicate Data Across Regions on the Client Side
- Limiting the Upload and Download Rate for obsutil
-
FAQs
- After Some Files Are Deleted in My Local Directory, Can obsutil Synchronously Delete Them from the Bucket?
- Can I Use obsutil to Directly Save a Listing Result to a Local File?
- Why Is the Size of Objects Queried by obsutil Inconsistent with That on OBS Console?
- How Can I Find Out Why Some Tasks in a Batch Task Failed?
- How Can I Locate and Rectify I/O Timeout and EOF Errors?
- Why Is a Question Mark Displayed in the Batch Task Progress Bar?
- Can Multiple config Files Be Placed in One Directory?
- Can obsutil List Objects with Special Characters in Their Names?
- Why Is the Number of Objects I Downloaded from OBS to My Local Windows PC Different from That in OBS?
- Can I Rename an Object or a Folder?
- Parameter Description
- Change History
-
OBS Browser+
-
Best Practices
- Overview
- Using Backup Software to Back Up Local Data to OBS
- Using a User-Defined Domain Name to Host a Static Website
- Optimizing the Performance
- Using the PostObject API to Upload Data from a Web Client to OBS
- Uploading Data from Mobile Apps to OBS
- Uploading Data from Mini Programs to OBS
- Accessing OBS Through an NGINX Reverse Proxy
- Using OBS to Decouple Storage from Compute in Big Data Scenarios
- Change History
-
API Reference
- Before You Start
- API Overview
- Calling APIs
- Getting Started
-
APIs
- Operations on Buckets
-
Advanced Bucket Settings
- Configuring a Bucket Policy
- Obtaining Bucket Policy Information
- Deleting a Bucket Policy
- Configuring a Bucket ACL
- Obtaining Bucket ACL Information
- Configuring Logging for a Bucket
- Obtaining a Bucket Logging Configuration
- Configuring Bucket Lifecycle Rules
- Obtaining Bucket Lifecycle Configuration
- Deleting Lifecycle Rules
- Configuring Versioning for a Bucket
- Obtaining Bucket Versioning Status
- Configuring Storage Class for a Bucket
- Obtaining Bucket Storage Class Information
- Configuring Tags for a Bucket
- Obtaining Bucket Tags
- Deleting Tags
- Configuring Bucket Storage Quota
- Querying Bucket Storage Quota
- Obtaining Storage Information of a Bucket
- Configuring Bucket Inventories
- Obtaining a Specific Inventory of a Bucket
- Listing All Inventories of a Bucket
- Deleting Bucket Inventories
- Configuring Bucket Encryption
- Obtaining Bucket Encryption Configuration
- Deleting the Encryption Configuration of a Bucket
- Setting the Direct Reading Policy for Archive Objects in a Bucket
- Obtaining the Direct Reading Policy of Archive Objects in a Bucket
- Deleting the Direct Reading Policy of Archive Objects in a Bucket
-
Static Website Hosting
- Configuring Static Website Hosting for a Bucket
- Obtaining the Static Website Hosting Configuration of a Bucket
- Deleting the Static Website Hosting Configuration of a Bucket
- Configuring Bucket CORS
- Obtaining the CORS Configuration of a Bucket
- Deleting the CORS Configuration of a Bucket
- OPTIONS Bucket
- OPTIONS Object
-
Operations on Objects
- Uploading an Object - PUT
- Uploading an Object - POST
- Copying an Object
- Downloading an Object
- Querying Object Metadata
- Deleting an Object
- Deleting Objects
- Restoring Archive Objects
- Appending an Object
- Configuring an Object ACL
- Obtaining Object ACL Configuration
- Modifying Object Metadata
- Modifying an Object
- Truncating an Object
- Renaming an Object
- Operations on Multipart Upload
- Server-Side Encryption
- Error Codes
- Permissions and Supported Actions
- Appendixes
- Change History
-
SDK Reference
- SDK Overview
-
Python
- Before You Start (SDK for Python)
- API Overview of OBS SDK for Python
- Preparations (SDK for Python)
- Downloading and Installing OBS SDK for Python
- Getting Started with OBS SDK for Python
- Initialization (SDK for Python)
-
Bucket-Related APIs (SDK for Python)
- Creating a Bucket (SDK for Python)
- Obtaining a Bucket List (SDK for Python)
- Checking Whether a Bucket Exists (SDK for Python)
- Deleting a Bucket (SDK for Python)
- Listing Objects in a Bucket (SDK for Python)
- Listing Object Versions in a Bucket (SDK for Python)
- Obtaining Bucket Metadata (SDK for Python)
- Obtaining the Region of a Bucket (SDK for Python)
- Obtaining Storage Information of a Bucket (SDK for Python)
- Configuring a Storage Quota (SDK for Python)
- Obtaining a Bucket Storage Quota (SDK for Python)
- Configuring a Storage Class for a Bucket (SDK for Python)
- Obtaining the Storage Class of a Bucket (SDK for Python)
- Configuring a Bucket ACL (SDK for Python)
- Obtaining a Bucket ACL (SDK for Python)
- Configuring Logging for a Bucket (SDK for Python)
- Obtaining the Logging Configuration of a Bucket (SDK for Python)
- Configuring a Bucket Policy (SDK for Python)
- Obtaining the Policy of a Bucket (SDK for Python)
- Deleting a Bucket Policy (SDK for Python)
- Configuring Lifecycle Rules for a Bucket (SDK for Python)
- Obtaining the Lifecycle Configuration of a Bucket (SDK for Python)
- Deleting the Lifecycle Configuration of a Bucket (SDK for Python)
- Configuring Static Website Hosting for a Bucket (SDK for Python)
- Obtaining Static Website Hosting for a Bucket (SDK for Python)
- Deleting Static Website Hosting for a Bucket (SDK for Python)
- Configuring Versioning for a Bucket (SDK for Python)
- Obtaining the Versioning Status of a Bucket (SDK for Python)
- Configuring CORS for a Bucket (SDK for Python)
- Obtaining the CORS Configuration of a Bucket (SDK for Python)
- Deleting the CORS Configuration of a Bucket (SDK for Python)
- Configuring Tags for a Bucket (SDK for Python)
- Obtaining Bucket Tags (SDK for Python)
- Deleting Bucket Tags (SDK for Python)
-
Object-Related APIs (SDK for Python)
- Object Upload Overview (SDK for Python)
- Uploading Objects - Text-Based (SDK for Python)
- Uploading an Object - Streaming (SDK for Python)
- Uploading an Object - File-Based (SDK for Python)
- Uploading an Object - Append (SDK for Python)
- Uploading an Object - Resumable (SDK for Python)
- Obtaining the Upload Progress (SDK for Python)
- Uploading an Object - Browser-Based (SDK for Python)
- Object Download Overview (SDK for Python)
- Downloading an Object - Binary (SDK for Python)
- Downloading an Object - Streaming (SDK for Python)
- Downloading an Object - File-Based (SDK for Python)
- Downloading an Object - Range-Based (SDK for Python)
- Downloading an Object - Resumable (SDK for Python)
- Downloading an Object - Obtaining the Download Progress (SDK for Python)
- Uploading an Object - Creating a Folder (SDK for Python)
- Copying an Object (SDK for Python)
- Deleting an Object (SDK for Python)
- Batch Deleting Objects (SDK for Python)
- Obtaining Object Metadata (SDK for Python)
- Modifying Object Metadata (SDK for Python)
- Configuring an Object ACL (SDK for Python)
- Obtaining an Object ACL (SDK for Python)
- Restoring an Archive Object (SDK for Python)
-
APIs Related to Multipart Upload (SDK for Python)
- Multipart Upload Overview (SDK for Python)
- Initiating a Multipart Upload (SDK for Python)
- Uploading a Part (SDK for Python)
- Listing Uploaded Parts (SDK for Python)
- Listing Multipart Uploads (SDK for Python)
- Assembling Parts (SDK for Python)
- Copying a Part (SDK for Python)
- Aborting a Multipart Upload (SDK for Python)
- Client-Side Encryption APIs (SDK for Python)
- Other APIs (SDK for Python)
- Troubleshooting (SDK for Python)
-
FAQs (SDK for Python)
- How Do I Make an Object Accessible to Anonymous Users? (SDK for Python)
- How Can I Obtain the AK and SK? (SDK for Python)
- How Do I Obtain an Object URL? (Python SDK)
- How Do I Improve the Uploading Speed of Large Files over the Public Network? (SDK for Python)
- Setting an Object Expiration Time (SDK for Python)
- What Is Content-Type (MIME)? (Python SDK)
- How Do I Get My Account ID and IAM User ID? (SDK for Python)
-
Java
- Before You Start (SDK for Java)
- API Overview (SDK for Java)
- Preparations (SDK for Java)
- SDK Download and Installation (SDK for Java)
- Getting Started (SDK for Java)
- Initialization (SDK for Java)
-
Buckets (SDK for Java)
- Creating a Bucket (SDK for Java)
- Obtaining a Bucket List (SDK for Java)
- Deleting a Bucket (SDK for Java)
- Checking Whether a Bucket Exists (SDK for Java)
- Obtaining Bucket Metadata (SDK for Java)
- Configuring a Bucket ACL (SDK for Java)
- Obtaining a Bucket ACL (SDK for Java)
- Configuring a Bucket Policy (SDK for Java)
- Obtaining the Policy of a Bucket (SDK for Java)
- Deleting a Bucket Policy (SDK for Java)
- Obtaining the Region of a Bucket (SDK for Java)
- Obtaining Storage Information of a Bucket (SDK for Java)
- Configuring a Storage Quota (SDK for Java)
- Obtaining a Bucket Storage Quota (SDK for Java)
- Configuring a Storage Class for a Bucket (SDK for Java)
- Obtaining the Storage Class of a Bucket (SDK for Java)
- Bucket Inventory (SDK for Java)
-
Object Upload (SDK for Java)
- Overview (SDK for Java)
- Uploading an Object - Streaming (SDK for Java)
- Uploading an Object - File-Based (SDK for Java)
- Obtaining the Upload Progress (SDK for Java)
- Creating a Folder (SDK for Java)
- Configuring Object Metadata (SDK for Java)
-
Multipart Upload (SDK for Java)
- Multipart Upload Overview (SDK for Java)
- Initiating a Multipart Upload (SDK for Java)
- Uploading a Part (SDK for Java)
- Assembling Parts (SDK for Java)
- Code Example of a Multipart Upload (SDK for Java)
- Aborting a Multipart Upload (SDK for Java)
- Listing Uploaded Parts (SDK for Java)
- Listing Multipart Uploads (SDK for Java)
- Configuring Lifecycle Rules (SDK for Java)
- Uploading an Object - Append (SDK for Java)
- Uploading an Object - Resumable (SDK for Java)
- Uploading an Object - Browser-Based (SDK for Java)
-
Object Download (SDK for Java)
- Overview (SDK for Java)
- Downloading an Object - Streaming (SDK for Java)
- Downloading an Object - Partial (SDK for Java)
- Obtaining the Download Progress (SDK for Java)
- Downloading an Object - Conditional (SDK for Java)
- Rewriting Response Headers (SDK for Java)
- Obtaining User-defined Metadata (SDK for Java)
- Restoring an Archive Object (SDK for Java)
- Downloading an Object - Resumable (SDK for Java)
-
Object Management (SDK for Java)
- Configuring Object Metadata (SDK for Java)
- Obtaining Object Metadata (SDK for Java)
- Configuring an Object ACL (SDK for Java)
- Obtaining an Object ACL (SDK for Java)
- Listing Objects (SDK for Java)
- Deleting an Object (SDK for Java)
- Batch Deleting Objects (SDK for Java)
- Copying an Object (SDK for Java)
- Copying an Object - Multipart (SDK for Java)
- Checking Whether an Object Exists (SDK for Java)
- Temporarily Authorized Access (SDK for Java)
-
Versioning (SDK for Java)
- Overview (SDK for Java)
- Configuring Versioning for a Bucket (SDK for Java)
- Obtaining the Versioning Status of a Bucket (SDK for Java)
- Obtaining an Object Version (SDK for Java)
- Copying an Object Version (SDK for Java)
- Restoring a Specific Archive Object Version (SDK for Java)
- Listing Object Versions (SDK for Java)
- Setting an ACL for an Object Version (SDK for Java)
- Obtaining the ACL of an Object Version (SDK for Java)
- Deleting an Object Version (SDK for Java)
- Batch Deleting Object Versions (SDK for Java)
- Lifecycle Management (SDK for Java)
- Cross-Origin Resource Sharing (SDK for Java)
- Logging (SDK for Java)
- Static Website Hosting (SDK for Java)
- Bucket Tag Management (SDK for Java)
- Server-Side Encryption (SDK for Java)
- Client-Side Encryption (SDK for Java)
- Fault Locating (SDK for Java)
- Troubleshooting (SDK for Java)
-
FAQs (SDK for Java)
- Can I Use This Document for Union SDK?
- How Can I Set an Object to Be Accessible to Anonymous Users? (Java SDK)
- What Is the Retry Mechanism of SDK? (Java SDK)
- How Do I Obtain the Static Website Access Address of a Bucket? (Java SDK)
- How Do I Obtain an Object URL? (Java SDK)
- How to Improve the Speed of Uploading Large Files over the Public Network? (Java SDK)
- How Do I Stop an Ongoing Upload Task? (Java SDK)
- How Can I Perform a Multipart Upload? (Java SDK)
- How Can I Perform a Download in Multipart Mode? (Java SDK)
- How Do I Confirm that an Upload is Successful If I Upload an Object to Overwrite an Existing Object with the Same Name in a Bucket? (Java SDK)
- How Do I Download an Encrypted Object Using a URL? (Java SDK)
- How Do I Generate an SSE-C Encryption Key?
- How Do I Obtain the Security Token? (Java SDK)
- Does the SDK Support Uploading, Downloading, or Copying Objects in a Batch? (Java SDK)
- What Is Content-Type (MIME)? (Java SDK)
- How Do I Get My Account ID and User ID?
-
Go
- Before You Start (SDK for Go)
- API Overview of OBS SDK for Go
- Preparations (SDK for Go)
- Downloading and Installing OBS SDK for Go
- Getting Started with OBS SDK for Go
- Initializing OBS SDK for Go
-
Buckets (SDK for Go)
- Bucket API Overview (SDK for Go)
- Creating a Bucket (SDK for Go)
- Obtaining a Bucket List (SDK for Go)
- Checking Whether a Bucket Exists (SDK for Go)
- Deleting a Bucket (SDK for Go)
- Listing Objects in a Bucket (SDK for Go)
- Listing Object Versions in a Bucket (SDK for Go)
- Obtaining Bucket Metadata (SDK for Go)
- Obtaining the Region of a Bucket (SDK for Go)
- Obtaining Storage Information of a Bucket (SDK for Go)
- Configuring a Storage Quota (SDK for Go)
- Obtaining a Bucket Storage Quota (SDK for Go)
- Configuring Storage Class for a Bucket (SDK for Go)
- Obtaining the Storage Class of a Bucket (SDK for Go)
- Configuring a Bucket ACL (SDK for Go)
- Obtaining the Bucket ACL (SDK for Go)
- Configuring Logging for a Bucket (SDK for Go)
- Obtaining the Logging Configuration of a Bucket (SDK for Go)
- Configuring a Bucket Policy (SDK for Go)
- Obtaining the Policy of a Bucket (SDK for Go)
- Deleting a Bucket Policy (SDK for Go)
- Configuring Lifecycle Rules for a Bucket (SDK for Go)
- Obtaining the Lifecycle Configuration of a Bucket (SDK for Go)
- Deleting the Lifecycle Configuration of a Bucket (SDK for Go)
- Configuring Static Website Hosting for a Bucket (SDK for Go)
- Obtaining the Static Website Hosting Configuration of a Bucket (SDK for Go)
- Deleting the Static Website Hosting Configuration of a Bucket (SDK for Go)
- Configuring Versioning for a Bucket (SDK for Go)
- Obtaining the Versioning Status of a Bucket (SDK for Go)
- Configuring CORS for a Bucket (SDK for Go)
- Obtaining the CORS Configuration of a Bucket (SDK for Go)
- Deleting the CORS Configuration of a Bucket (SDK for Go)
- Configuring a Custom Domain Name for a Bucket (SDK for Go)
- Obtaining the Custom Domain Name of a Bucket (SDK for Go)
- Deleting the Custom Domain Name of a Bucket (SDK for Go)
-
Objects (SDK for Go)
- Object API Overview (SDK for Go)
- Object Upload Overview (SDK for Go)
- Object Download Overview (SDK for Go)
- Creating a Folder (SDK for Go)
- Copying an Object (SDK for Go)
- Deleting an Object (SDK for Go)
- Batch Deleting Objects (SDK for Go)
- Configuring Object Metadata (SDK for Go)
- Obtaining Object Metadata (SDK for Go)
- Configuring an Object ACL (SDK for Go)
- Obtaining Object ACL Information (SDK for Go)
- Rewriting Response Headers (SDK for Go)
- Restoring an Archive Object (SDK for Go)
- Modifying an Object (SDK for Go)
- Multipart Uploads (SDK for Go)
- Other APIs (SDK for Go)
- Single-Connection Bandwidth Throttling (SDK for Go)
- Troubleshooting (SDK for Go)
- FAQ (SDK for Go)
-
Android
- Installing the SDK
- Example Programs
- Quick Start
- Initialization
- Bucket Management
-
Object Upload
- Object Upload Overview
- Performing a Streaming Upload
- Performing a File-Based Upload
- Obtaining Upload Progresses
- Creating a Folder
- Setting Object Properties
- Performing a Multipart Upload
- Configuring Lifecycle Management
- Performing an Appendable Upload
- Performing a Multipart Copy
- Performing a Resumable Upload
- Performing a Browser-Based Upload
- Object Download
- Object Management
- Temporarily Authorized Access
- Versioning Management
- Lifecycle Management
- CORS
- Access Logging
- Static Website Hosting
- Tag Management
- Server-Side Encryption
- Troubleshooting
- FAQ
-
C
- SDK Download
- SDK Compilation
- Compatibility
- Quick Start
- Initialization
- Bucket Management
- Uploading an Object
- Downloading an Object
- Object Management
- Temporarily Authorized Request
- Accessing OBS Through a User-Defined Domain Name
- Versioning Management
- Lifecycle Management
- Cross-Origin Resource Sharing (CORS)
- Setting Access Logging
- Static Website Hosting
- Tag Management
- Server-Side Encryption
- Troubleshooting
- FAQs
-
BrowserJS
- Before You Start
- SDK Download Links
- Example Programs
- Quick Start
- Initialization
- Fault Locating
- Bucket Management
-
Object Upload
- Object Upload Overview
- Performing a Text-Based Upload
- Performing a File-Based Upload
- Obtaining Upload Progresses
- Creating a Folder
- Setting Object Properties
- Performing a Multipart Upload
- Configuring Lifecycle Management
- Performing an Appendable Upload
- Performing a Multipart Copy
- Performing a Resumable Upload
- Performing a Browser-Based Upload
-
Object Download
- Object Download Overview
- Performing a Text-Based Download
- Performing a Binary Download
- Performing a File-Based Download
- Performing a Partial Download
- Obtaining Download Progresses
- Performing a Conditioned Download
- Rewriting Response Headers
- Obtaining Customized Metadata
- Downloading an Archive Object
- Object Management
- Temporarily Authorized Access
- Versioning Management
- Lifecycle Management
- Access Logging
- Static Website Hosting
- Tag Management
- Server-Side Encryption
- Troubleshooting
-
FAQs
- How Do I Upload Files Using a Browser that Does Not Support window.File?
- How Can I Set an Object to Be Accessible to Anonymous Users?
- How Do I Obtain the Static Website Access Address of a Bucket?
- How Do I Obtain an Object URL?
- How to Improve the Speed of Uploading Large Files over the Public Network?
- How Do I Suspend a Resumable Upload Task?
- How Do I Interact with OBS Without Exposing My AK and SK?
- How Do I Upload a Base64-Encoded Image?
- What Do I Do If the Resumable Upload API Reports a "400 InvalidPart" Error?
- API Reference
- Change History
-
iOS
- SDK Download Links
- Compatibility
- Quick Start
- Initialization
- Bucket Management
- Object Upload
- Object Download
- Object Management
- Temporarily Authorized Access
- Versioning Management
- Lifecycle Management
- CORS
- Access Logging
- Static Website Hosting
- Tag Management
- Server-Side Encryption
- Troubleshooting
- FAQ
- API Reference
- Change History
-
PHP
- SDK Download Links
- Example Programs
-
Quick Start
- Before You Start
- Setting Up an OBS Environment
- Preparing a Development Environment
- Installing the SDK
- Importing Dependencies
- Initializing an Instance of ObsClient
- Creating a Bucket
- Uploading an Object
- Downloading an Object
- Listing Objects
- Deleting an Object
- General Examples of ObsClient
- Pre-defined Constants
- Initialization
- Bucket Management
- Object Upload
- Object Download
- Object Management
- Temporarily Authorized Access
- Versioning Management
- Lifecycle Management
- CORS
- Access Logging
- Static Website Hosting
- Tag Management
- Server-Side Encryption
- Troubleshooting
- FAQs
- API Reference
- Change History
-
Node.js
- Downloading an SDK (SDK for Node.js)
-
Getting Started (SDK for Node.js)
- Before You Start (SDK for Node.js)
- Setting Up an OBS Environment (SDK for Node.js)
- Preparing a Development Environment (SDK for Node.js)
- Installing the SDK (SDK for Node.js)
- Initializing an Instance of ObsClient (SDK for Node.js)
- Creating a Bucket (SDK for Node.js)
- Uploading an Object (SDK for Node.js)
- Downloading an Object (SDK for Node.js)
- Listing Objects (SDK for Node.js)
- Deleting an Object (SDK for Node.js)
- General Ways to Use ObsClient (SDK for Node.js)
- Initialization (SDK for Node.js)
-
Bucket Management (SDK for Node.js)
- Creating a Bucket (SDK for Node.js)
- Listing Buckets (SDK for Node.js)
- Checking Whether a Bucket Exists (SDK for Node.js)
- Deleting a Bucket (SDK for Node.js)
- Obtaining Bucket Metadata (SDK for Node.js)
- Configuring a Bucket ACL (SDK for Node.js)
- Obtaining a Bucket ACL (SDK for Node.js)
- Configuring a Bucket Policy (SDK for Node.js)
- Obtaining the Policy of a Bucket (SDK for Node.js)
- Deleting a Bucket Policy (SDK for Node.js)
- Obtaining the Region of a Bucket (SDK for Node.js)
- Obtaining Storage Information of a Bucket (SDK for Node.js)
- Configuring a Storage Quota for a Bucket (SDK for Node.js)
- Obtaining the Storage Quota of a Bucket (SDK for Node.js)
- Configuring a Storage Class for a Bucket (SDK for Node.js)
- Obtaining the Storage Class of a Bucket (SDK for Node.js)
-
Object Upload (SDK for Node.js)
- Object Upload Overview (SDK for Node.js)
- Uploading an Object - Text-Based (SDK for Node.js)
- Uploading an Object - Streaming (SDK for Node.js)
- Uploading an Object - File-Based (SDK for Node.js)
- Creating a Folder (SDK for Node.js)
- Configuring Object Metadata (SDK for Node.js)
- Configuring a Lifecycle Rule When Uploading an Object (SDK for Node.js)
- Uploading an Object - Append (SDK for Node.js)
- Uploading an Object - Resumable (SDK for Node.js)
- Uploading an Object - Browser-Based (SDK for Node.js)
-
Object Download (SDK for Node.js)
- Overview (SDK for Node.js)
- Downloading an Object - Text-Based (SDK for Node.js)
- Downloading an Object - Streaming (SDK for Node.js)
- Downloading an Object - File-Based (SDK for Node.js)
- Downloading an Object - Range-Based (SDK for Node.js)
- Downloading an Object - Conditional (SDK for Node.js)
- Rewriting Response Headers (SDK for Node.js)
- Downloading an Archive Object (SDK for Node.js)
- Downloading an Object - Resumable (SDK for Node.js)
-
Object Management (SDK for Node.js)
- Configuring Object Metadata (SDK for Node.js)
- Obtaining Object Metadata (SDK for Node.js)
- Configuring an Object ACL (SDK for Node.js)
- Obtaining the ACL of an Object (SDK for Node.js)
- Listing Objects in a Bucket (SDK for Node.js)
- Deleting an Object (SDK for Node.js)
- Batch Deleting Objects (SDK for Node.js)
- Copying an Object (SDK for Node.js)
-
Multipart Upload (SDK for Node.js)
- Multipart Upload APIs (SDK for Node.js)
- Initiating a Multipart Upload (SDK for Node.js)
- Uploading a Part (SDK for Node.js)
- Assembling Parts (SDK for Node.js)
- Listing Uploaded Parts (SDK for Node.js)
- Listing Multipart Uploads (SDK for Node.js)
- Copying a Part (SDK for Node.js)
- Aborting a Multipart Upload (SDK for Node.js)
- Temporarily Authorized Access (SDK for Node.js)
-
Versioning (SDK for Node.js)
- Versioning Overview (SDK for Node.js)
- Configuring Versioning for a Bucket (SDK for Node.js)
- Viewing the Versioning Status of a Bucket (SDK for Node.js)
- Obtaining an Object Version (SDK for Node.js)
- Copying an Object Version (SDK for Node.js)
- Restoring an Archive Object Version (SDK for Node.js)
- Listing Object Versions in a Bucket (SDK for Node.js)
- Setting an ACL for an Object Version (SDK for Node.js)
- Obtaining the ACL of an Object Version (SDK for Node.js)
- Deleting an Object Version (SDK for Node.js)
- Lifecycle (SDK for Node.js)
- Bucket CORS (SDK for Node.js)
- Logging (SDK for Node.js)
- Static Website Hosting (SDK for Node.js)
- Tagging (SDK for Node.js)
- Server-Side Encryption (SDK for Node.js)
- Troubleshooting (SDK for Node.js)
- FAQs (SDK for Node.js)
-
.NET
- SDK Download Links
- Quick Start
- Initialization
-
Bucket Management
- Creating a Bucket
- Listing Buckets
- Deleting a Bucket
- Identifying Whether a Bucket Exists
- Obtaining Bucket Metadata
- Managing Bucket ACLs
- Management Bucket Policies
- Obtaining a Bucket Location
- Obtaining Storage Information About a Bucket
- Setting or Obtaining a Bucket Quota
- Setting or Obtaining the Storage Class of a Bucket
-
Object Upload
- Object Upload Overview
- Performing a Streaming Upload
- Performing a File-Based Upload
- Performing an Asynchronous Upload
- Obtaining Upload Progress
- Creating a Folder
- Setting Object Properties
- Performing a Multipart Upload
- Configuring Lifecycle Management
- Performing an Appendable Upload
- Performing a Multipart Copy
- Performing a Resumable Upload
-
Object Download
- Object Download Overview
- Performing a Streaming Download
- Performing a Partial Download
- Performing an Asynchronous Download
- Obtaining Download Progress
- Performing a Conditioned Download
- Rewriting Response Headers
- Obtaining Customized Metadata
- Downloading an Archive Object
- Performing a Resumable Download
- Object Management
- Temporarily Authorized Access
- Versioning Management
- Lifecycle Management
- CORS
- Access Logging
- Static Website Hosting
- Tag Management
- Server-Side Encryption
- Troubleshooting
- FAQ
- Change History
-
FAQs
-
OBS Basics
- How Can I Get Started with OBS?
- What Are the Advantages of Object Storage over SAN and NAS Storage?
- Which Types of Data Can Be Stored in OBS?
- How Much Data Can I Store in OBS?
- Does OBS Support Traffic Monitoring?
- Can Folders in OBS Be Used the Same Way as in a File System?
- Where Is Data Stored in OBS?
- How Can I Determine Which Region to Store My Data In?
- Does OBS Support Access over HTTPS?
- Can Other Users Access My Data Stored in OBS?
- Does OBS Support Resumable Transfer?
- Does OBS Support Batch Upload?
- Does OBS Support Batch Download?
- Does OBS Support Batch Deletion of Objects?
- What Are the Factors That Affect Upload and Download Speeds of OBS?
- Why Did Some of My Data Stored on OBS Get Lost?
- Can Deleted Data Be Recovered?
- Will There Be Data Left Over in OBS After I Delete an Object?
- What Can I Do If My Access to the OBS Domain Name Failed Due to a CA Certificate Connection Failure?
- What Are the Differences Between OBS, EVS, and SFS?
- Why Is an Alarm Reported When I Access an OBS URL?
- How Do I Determine Whether I Am Accessing OBS over an Intranet?
- Will My Bucket Performance Be Affected by Other Users' Services?
-
Billing
- How Do I Purchase OBS?
- Why Is OBS Still Unavailable Even Though My Account Is Topped Up and There Are No Outstanding Bills?
- Why Does My Bucket Generate Storage Fees Even Though There Are No Objects in It?
- Why Am I Still Being Billed for Pull Traffic Used by CDN Acceleration When I Already Have a Pull Traffic Package?
- Why Am I Still Being Billed After I Purchased a Resource Package?
- What Is a Standard Storage Package (Multi-AZ) Used For?
- Do I Need to Purchase an Outbound Internet Traffic Package If I Already Have a Pull Traffic Package?
- Why Does My Bucket Generate Traffic When There Are No Objects in It?
- How Are Requests Counted?
- Do I Have to Purchase a Resource Package? Can I Apply a Package to a Specific Bucket?
- Can I Unsubscribe from or Modify a Resource Package?
- Can I Purchase Requests?
- Do Parallel File Systems Support Resource Packages?
- Which Types of Resource Packages Will Reset Their Quota by Month and Which Types Will Not?
- Will the Remaining Package Quota in a Given Month Be Carried over to the Following Month?
- Will My Data Write Be Restricted When My OBS Package Has Been Used Up?
- Why Is There a Charge of $0.01 USD on My OBS Bill?
-
Access Control
- How Can I Control Access to OBS?
- What Are the Differences Between Using an IAM Permission and a Bucket Policy in Access Control?
- What Is the Relationship Between a Bucket Policy and an Object Policy?
- Why Is the Message "Access denied" Still Appearing After OBS System Permissions Were Assigned by IAM?
- Why Does Message "Access denied" Appear After I Was Granted the Read and Write Permissions for a Bucket?
- Why Can't I Access OBS (403 AccessDenied) After Being Granted with the OBS Access Permission?
- How Do I Control Access to Folders in an OBS Bucket?
- How Can I Check Whether My Bucket Policy Is Private, Public Read, or Public Read and Write?
-
Buckets and Objects
- Why Am I Unable to Create a Bucket?
- Why Am I Unable to Upload an Object?
- Why Am I Unable to Download an Object?
- Why Can't I Delete a Bucket?
- Why Can't I Delete an Object?
- What Is the Relationship Between Bucket Storage Classes and Object Storage Classes?
- Can I Rename an Object?
- Can I Modify the Region of a Bucket?
- Can I Edit Objects in OBS Online?
- How Do I Obtain the Access Path to an Object?
- Why Can't I Search for Certain Objects in My Bucket?
- How Do I Preview Objects in OBS in a Browser Online?
- What Do I Do If I Encounter an Error While Trying to Access an Object URL with Full-Width Characters Using Internet Explorer?
- With CDN Acceleration Enabled, Why Are the Objects in My OBS Bucket Directly Downloaded When I Access Them?
- Why Is an Error Reported Even If CORS Has Been Configured?
- How Do I Batch Delete a Large Number of Objects from a Bucket or Empty a Bucket?
- How Do I Change the Enterprise Project Where My Bucket Belongs?
- How Do I Upload Objects Larger Than 5 GB?
- APIs and SDKs
-
Security
- How Is Data Security Ensured in OBS?
- Does OBS Scan My Data for Other Purposes?
- Can Engineers Export My Data from the Background of OBS?
- How Does OBS Protect My Data from Being Stolen?
- Can a Pair of AK and SK Be Replaced When It Is Being Used to Access OBS?
- Can Multiple Users Share One Pair of AK and SK to Access OBS?
- Durability and Availability
- Data Migration and Backup
- Fragment Management
- Versioning
- Tags
- How Do I Use Lifecycle Management?
- How Do I Use Static Website Hosting?
-
User-Defined Domain Name Configuration
- Why Is the Message "NoSuchBucket" Displayed When I Use a User-Defined Domain Name to Access a Bucket That Can Be Accessed by the OBS Domain Name?
- What Is the Relationship Between OBS Bucket Names and Domain Names?
- Why Is the CNAME Resolution Status Unknown?
- Why Can Only the Domain Names I Bought on Huawei Cloud Be Automatically Resolved?
- Monitoring
-
Server-Side Encryption
- How Do I Access or Download an Encrypted Object?
- Why Cannot an Authorized Account or User Upload or Download KMS Encrypted Objects?
- What Technologies Can I Use to Encrypt Data on OBS?
- Will OBS Server-Side Encryption Encrypt My Existing Objects That Are Unencrypted?
- Will I Be Billed for the Encryption Provided by OBS Server-Side Encryption?
- Does OBS SSE-KMS Allow Anonymous Access?
- Change History
-
OBS Basics
Setting Lifecycle Rules
If you have any questions during development, post them on the Issues page of GitHub.
You can call set_bucket_lifecycle_configuration to set lifecycle rules for a bucket.
Parameter Description
Field |
Type |
Mandatory or Optional |
Description |
---|---|---|---|
option |
The context of the bucket. For details, see Configuring option. |
Mandatory |
Bucket parameter |
bucket_lifecycle_conf |
obs_lifecycle_conf * |
Mandatory |
For details about the bucket lifecycle configuration, see the following table. |
blcc_number |
unsigned int |
Mandatory |
Number of array members in the array bucket_lifecycle_conf. |
handler |
obs_response_handler* |
Mandatory |
Callback function |
callback_data |
void * |
Optional |
Callback data |
The following table describes the bucket lifecycle configuration structure obs_lifecycle_conf.
Field |
Type |
Mandatory or Optional |
Description |
---|---|---|---|
date |
const char * |
If there is no days and no transition, noncurrent_version_days, or noncurrent_version_transition, this parameter is mandatory. |
Indicates the time when the object expiration rule of the latest version takes effect. The value must conform to the ISO8601 standards and must be at 00:00 (UTC time). |
days |
const char * |
If there is no date and no transition, noncurrent_version_days, noncurrent_version_transition is available, this parameter is mandatory. |
Number of days when the expiration rule takes effect after the object creation (only applicable to latest versions of objects). |
id |
const char * |
Optional |
Unique identifier of a rule. The value can contain a maximum of 255 characters. |
prefix |
const char * |
Mandatory |
Object name prefix identifying one or more objects to which the rule applies. |
status |
const char * |
Mandatory |
Indicates whether the rule is enabled. |
noncurrent_version_days |
const char * |
Optional |
Number of days when the specified expiration rule takes effect after the object becomes a noncurrent version (only applicable to an object's noncurrent version). Container for the expiration time of objects' noncurrent versions. If versioning is enabled or suspended for a bucket, you can set this parameter to delete noncurrent versions of objects that match the lifecycle rule (only applicable to the noncurrent versions of objects). |
transition_num |
unsigned int |
If transition is not empty, this parameter is mandatory. |
Number of array members in the array transition. |
transition |
obs_lifecycle_transtion * |
If there is no date, days, noncurrent_version_transition, or noncurrent_version_days, this parameter is mandatory. |
Indicates the transition time and the object storage class after transition (valid only for the latest object version). |
transition->date |
const char * |
This parameter is mandatory if there is transition but no transition.days. |
Indicates the time when the object transition rule of the latest version takes effect. The value must conform to the ISO8601 standards and must be at 00:00 (UTC time). |
transition->days |
const char * |
This parameter is mandatory if there is transition but no transition.date. |
Number of days when the transition rule takes effect after the object creation (only applicable to latest versions of objects). |
transition->storage_class |
obs_storage_class |
If there is transition, this parameter is mandatory. |
The storage class to which the latest version object is modified. |
noncurrent_version_transition_num |
unsigned int |
If obs_lifecycle_noncurrent_transtion is not empty, this parameter is mandatory. |
Number of array members in the array noncurrent_version_transition. |
noncurrent_version_transition |
obs_lifecycle_noncurrent_transtion * |
If there is no date, days, transition, or noncurrent_version_days, this parameter is mandatory. |
Transition time of noncurrent object versions and the object storage class after transition. |
noncurrent_version_transition->noncurrent_version_days |
const char * |
If there is noncurrent_version_transition, this parameter is mandatory. |
Number of days when the specified transition rule takes effect after the object becomes a noncurrent version (only applicable to an object's noncurrent version). |
noncurrent_version_transition->storage_class |
obs_storage_class |
If there is noncurrent_version_transition, this parameter is mandatory. |
The storage class to which the noncurrent version object is modified. |
Setting an Object Transition Policy
Sample code:
static void test_set_bucket_lifecycle_configuration1() { obs_status ret_status = OBS_STATUS_BUTT; // Create and initialize option. obs_options option; init_obs_options(&option); option.bucket_options.host_name = "<your-endpoint>"; option.bucket_options.bucket_name = "<Your bucketname>"; // Hard-coded or plaintext AK/SK are risky. For security purposes, encrypt your AK/SK and store them in the configuration file or environment variables. In this example, the AK/SK are stored in environment variables for identity authentication. Before running this example, configure environment variables ACCESS_KEY_ID and SECRET_ACCESS_KEY. // Obtain an AK/SK pair on the management console. For details, see https://support.huaweicloud.com/eu/usermanual-ca/ca_01_0003.html. option.bucket_options.access_key = getenv("ACCESS_KEY_ID"); option.bucket_options.secret_access_key = getenv("SECRET_ACCESS_KEY"); // Set the completed callback function. obs_response_handler response_handler = { NULL, &response_complete_callback }; obs_lifecycle_conf bucket_lifecycle_conf; memset(&bucket_lifecycle_conf, 0, sizeof(obs_lifecycle_conf)); // ID of the lifecycle rule bucket_lifecycle_conf.id = "test3"; // Designate prefix "test". bucket_lifecycle_conf.prefix = "bcd"; // The lifecycle rule takes effect. bucket_lifecycle_conf.status = "Enabled"; // Specify that objects whose names contain the prefix will expire 10 days after creation. bucket_lifecycle_conf.days = "10"; obs_lifecycle_transtion transition; memset(&transition, 0, sizeof(obs_lifecycle_transtion)); // Specify that objects whose names contain the specified prefix will be transitioned 30 days after creation. transition.days = "30"; // Specify the storage class that the object will be transitioned to. transition.storage_class = OBS_STORAGE_CLASS_STANDARD_IA; bucket_lifecycle_conf.transition = &transition; bucket_lifecycle_conf.transition_num = 1; obs_lifecycle_noncurrent_transtion noncurrent_transition; memset(&noncurrent_transition, 0, sizeof(obs_lifecycle_noncurrent_transtion)); // Specify that objects whose names contain the specified prefix will be transitioned 30 days after becoming noncurrent versions. noncurrent_transition.noncurrent_version_days = "30"; // Specify the storage class of objects whose names contain the prefix after changing into noncurrent versions. noncurrent_transition.storage_class = OBS_STORAGE_CLASS_STANDARD_IA; bucket_lifecycle_conf. noncurrent_version_transition = &noncurrent_transition; bucket_lifecycle_conf.noncurrent_version_transition_num = 1; set_bucket_lifecycle_configuration(&option, &bucket_lifecycle_conf, 1, &response_handler, &ret_status); if (OBS_STATUS_OK == ret_status) { printf("set bucket lifecycle configuration success.\n"); } else { printf("set bucket lifecycle configuration failed(%s).\n", obs_get_status_name(ret_status)); } }
Setting an Object Expiration Time
Sample code:
static void test_set_bucket_lifecycle_configuration2() { obs_options option; obs_status ret_status = OBS_STATUS_BUTT; // Set option. init_obs_options(&option); option.bucket_options.host_name = HOST_NAME; option.bucket_options.bucket_name = bucket_name; //Read the AK/SK from environment variables. option.bucket_options.access_key = getenv("ACCESS_KEY_ID"); option.bucket_options.secret_access_key = getenv("SECRET_ACCESS_KEY"); // Set the completed callback function. obs_response_handler response_handler = { NULL, &response_complete_callback }; obs_lifecycle_conf bucket_lifecycle_conf; memset(&bucket_lifecycle_conf, 0, sizeof(obs_lifecycle_conf)); // ID of the lifecycle rule bucket_lifecycle_conf.id = "test1"; // Designate prefix "test". bucket_lifecycle_conf.prefix = "test"; // Specify that objects whose names contain the prefix will expire 10 days after creation. bucket_lifecycle_conf.days = "10"; // Specify that objects whose names contain the specified prefix will expire 20 days after becoming noncurrent versions. bucket_lifecycle_conf.noncurrent_version_days = "20"; // The lifecycle rule takes effect. bucket_lifecycle_conf.status = "Enabled"; set_bucket_lifecycle_configuration(&option, &bucket_lifecycle_conf, 1, &response_handler, &ret_status); if (OBS_STATUS_OK == ret_status) { printf("set bucket lifecycle configuration success.\n"); } else { printf("set bucket lifecycle configuration failed(%s).\n", obs_get_status_name(ret_status)); } }
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.