diff --git a/docs/obs/api-ref/ALL_META.TXT.json b/docs/obs/api-ref/ALL_META.TXT.json index fc3d210f..4585cec8 100644 --- a/docs/obs/api-ref/ALL_META.TXT.json +++ b/docs/obs/api-ref/ALL_META.TXT.json @@ -1,4 +1,7 @@ [ + { + "dockw":"API Reference" + }, { "uri":"obs_04_0001.html", "node_id":"obs_04_0001.xml", @@ -1059,11 +1062,91 @@ "title":"Obtaining Storage Information of a Bucket", "githuburl":"" }, + { + "uri":"obs_04_0055.html", + "node_id":"obs_04_0055.xml", + "product_code":"obs", + "code":"54", + "des":"OBS uses the PUT method to configure bucket inventories. Each bucket can have a maximum of 10 inventories.To perform this operation, ensure that you have the PutBucketInv", + "doc_type":"api", + "kw":"Configuring Bucket Inventories,Advanced Bucket Settings,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"obs", + "mdname":"Sample Code for Uploading an Object", + "opensource":"true" + } + ], + "title":"Configuring Bucket Inventories", + "githuburl":"" + }, + { + "uri":"obs_04_0056.html", + "node_id":"obs_04_0056.xml", + "product_code":"obs", + "code":"55", + "des":"OBS uses the GET method to obtain a specific inventory of a bucket.To perform this operation, you must have the GetBucketInventoryConfiguration permission. By default, th", + "doc_type":"api", + "kw":"Obtaining a Specific Inventory of a Bucket,Advanced Bucket Settings,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"obs", + "mdname":"Sample Code for Uploading an Object", + "opensource":"true" + } + ], + "title":"Obtaining a Specific Inventory of a Bucket", + "githuburl":"" + }, + { + "uri":"obs_04_0057.html", + "node_id":"obs_04_0057.xml", + "product_code":"obs", + "code":"56", + "des":"OBS uses the GET method without inventory IDs to obtain all inventories of a specified bucket. Obtained inventories are returned together on only one page.To perform this", + "doc_type":"api", + "kw":"Listing All Inventories of a Bucket,Advanced Bucket Settings,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"obs", + "mdname":"Sample Code for Uploading an Object", + "opensource":"true" + } + ], + "title":"Listing All Inventories of a Bucket", + "githuburl":"" + }, + { + "uri":"obs_04_0058.html", + "node_id":"obs_04_0058.xml", + "product_code":"obs", + "code":"57", + "des":"OBS uses the DELETE method to delete inventories (identified by inventory IDs) of a specified bucket.To perform this operation, you must have the DeleteBucketInventoryCon", + "doc_type":"api", + "kw":"Deleting Bucket Inventories,Advanced Bucket Settings,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"obs", + "mdname":"Sample Code for Uploading an Object", + "opensource":"true" + } + ], + "title":"Deleting Bucket Inventories", + "githuburl":"" + }, { "uri":"obs_04_0059.html", "node_id":"obs_04_0059.xml", "product_code":"obs", - "code":"54", + "code":"58", "des":"OBS uses the PUT method to configure a custom domain name for a bucket. After the configuration is successful, you can access the bucket through the domain name.Ensure th", "doc_type":"api", "kw":"Configuring a Custom Domain Name for a Bucket,Advanced Bucket Settings,API Reference", @@ -1083,7 +1166,7 @@ "uri":"obs_04_0060.html", "node_id":"obs_04_0060.xml", "product_code":"obs", - "code":"55", + "code":"59", "des":"OBS uses the GET method to obtain the custom domain name of a bucket.This request message does not contain the request parameters.This request uses common headers. For de", "doc_type":"api", "kw":"Obtaining the Custom Domain Name of a Bucket,Advanced Bucket Settings,API Reference", @@ -1103,7 +1186,7 @@ "uri":"obs_04_0061.html", "node_id":"obs_04_0061.xml", "product_code":"obs", - "code":"56", + "code":"60", "des":"OBS uses the DELETE method to delete the custom domain name of a bucket.This request uses common headers. For details, see Table 3.This request involves no elements.The r", "doc_type":"api", "kw":"Deleting the Custom Domain Name of a Bucket,Advanced Bucket Settings,API Reference", @@ -1123,7 +1206,7 @@ "uri":"obs_04_0062.html", "node_id":"obs_04_0062.xml", "product_code":"obs", - "code":"57", + "code":"61", "des":"OBS uses the PUT method to create or update the default server-side encryption for a bucket.After you configure encryption for a bucket, objects uploaded to this bucket w", "doc_type":"api", "kw":"Configuring Bucket Encryption,Advanced Bucket Settings,API Reference", @@ -1143,7 +1226,7 @@ "uri":"obs_04_0063.html", "node_id":"obs_04_0063.xml", "product_code":"obs", - "code":"58", + "code":"62", "des":"OBS uses the GET method to obtain the encryption configuration of a specified bucket.To perform this operation, you must have the GetEncryptionConfiguration permission. B", "doc_type":"api", "kw":"Obtaining Bucket Encryption Configuration,Advanced Bucket Settings,API Reference", @@ -1163,7 +1246,7 @@ "uri":"obs_04_0064.html", "node_id":"obs_04_0064.xml", "product_code":"obs", - "code":"59", + "code":"63", "des":"OBS uses the DELETE method to delete the encryption configuration of a specified bucket.To perform this operation, you must have the PutEncryptionConfiguration permission", "doc_type":"api", "kw":"Deleting the Encryption Configuration of a Bucket,Advanced Bucket Settings,API Reference", @@ -1183,7 +1266,7 @@ "uri":"obs_04_0068.html", "node_id":"obs_04_0068.xml", "product_code":"obs", - "code":"60", + "code":"64", "des":"The requester-pays configuration allows the requester to pay for data transfer and API calls associated with accessing the requested OBS resources, while the bucket owner", "doc_type":"api", "kw":"Configuring the Requester-Pays Function for a Bucket,Advanced Bucket Settings,API Reference", @@ -1203,7 +1286,7 @@ "uri":"obs_04_0069.html", "node_id":"obs_04_0069.xml", "product_code":"obs", - "code":"61", + "code":"65", "des":"This API obtains the requester-pays configuration information of a bucket.This request contains no message parameters.This request uses common headers. For details, see T", "doc_type":"api", "kw":"Obtaining the Requester-Pays Configuration Information of a Bucket,Advanced Bucket Settings,API Refe", @@ -1223,8 +1306,8 @@ "uri":"obs_04_0167.html", "node_id":"obs_04_0167.xml", "product_code":"obs", - "code":"62", - "des":"This operation enables WORM for a bucket and allows you to configure the default WORM policy and a retention period.With the bucket's default WORM policy, if you do not s", + "code":"66", + "des":"This operation allows you to configure the default WORM policy and a retention period for a bucket.With the bucket's default WORM policy, if you do not specify a WORM pol", "doc_type":"api", "kw":"Configuring a Default WORM Policy for a Bucket,Advanced Bucket Settings,API Reference", "search_title":"", @@ -1243,7 +1326,7 @@ "uri":"obs_04_0168.html", "node_id":"obs_04_0168.xml", "product_code":"obs", - "code":"63", + "code":"67", "des":"This operation returns the default WORM policy of a bucket.To perform this operation, you must have the GetBucketObjectLockConfiguration permission. The bucket owner can ", "doc_type":"api", "kw":"Obtaining the Default WORM Policy of a Bucket,Advanced Bucket Settings,API Reference", @@ -1263,7 +1346,7 @@ "uri":"obs_04_0070.html", "node_id":"obs_04_0070.xml", "product_code":"obs", - "code":"64", + "code":"68", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Static Website Hosting", @@ -1283,7 +1366,7 @@ "uri":"obs_04_0071.html", "node_id":"obs_04_0071.xml", "product_code":"obs", - "code":"65", + "code":"69", "des":"OBS allows you to store static web page resources such as HTML web pages, flash files, videos, and audios in a bucket. When a client accesses these resources from the web", "doc_type":"api", "kw":"Configuring Static Website Hosting for a Bucket,Static Website Hosting,API Reference", @@ -1303,7 +1386,7 @@ "uri":"obs_04_0072.html", "node_id":"obs_04_0072.xml", "product_code":"obs", - "code":"66", + "code":"70", "des":"You can perform this operation to get the static website hosting configuration of a bucket.To perform this operation, you must have the GetBucketWebsite permission. By de", "doc_type":"api", "kw":"Obtaining the Static Website Hosting Configuration of a Bucket,Static Website Hosting,API Reference", @@ -1323,7 +1406,7 @@ "uri":"obs_04_0073.html", "node_id":"obs_04_0073.xml", "product_code":"obs", - "code":"67", + "code":"71", "des":"You can perform this operation to delete the website configuration of a bucket.To perform this operation, you must have the DeleteBucketWebsite permission. By default, on", "doc_type":"api", "kw":"Deleting the Static Website Hosting Configuration of a Bucket,Static Website Hosting,API Reference", @@ -1343,7 +1426,7 @@ "uri":"obs_04_0074.html", "node_id":"obs_04_0074.xml", "product_code":"obs", - "code":"68", + "code":"72", "des":"Cross-origin resource sharing (CORS) is a standard mechanism proposed by World Wide Web Consortium (W3C) and allows cross-origin requests from clients. For standard web p", "doc_type":"api", "kw":"Configuring Bucket CORS,Static Website Hosting,API Reference", @@ -1363,7 +1446,7 @@ "uri":"obs_04_0075.html", "node_id":"obs_04_0075.xml", "product_code":"obs", - "code":"69", + "code":"73", "des":"You can perform this operation to obtain CORS configuration information about a specified bucket.To perform this operation, you must have the GetBucketCORS permission. By", "doc_type":"api", "kw":"Obtaining the CORS Configuration of a Bucket,Static Website Hosting,API Reference", @@ -1383,7 +1466,7 @@ "uri":"obs_04_0076.html", "node_id":"obs_04_0076.xml", "product_code":"obs", - "code":"70", + "code":"74", "des":"This operation is used to delete the CORS configuration of a bucket. After the CORS configuration is deleted, the bucket and objects in it cannot be accessed by requests ", "doc_type":"api", "kw":"Deleting the CORS Configuration of a Bucket,Static Website Hosting,API Reference", @@ -1403,7 +1486,7 @@ "uri":"obs_04_0077.html", "node_id":"obs_04_0077.xml", "product_code":"obs", - "code":"71", + "code":"75", "des":"OPTIONS refers to pre-requests that are sent to servers by clients. Generally, the requests are used to check whether clients have permissions to perform operations on se", "doc_type":"api", "kw":"OPTIONS Bucket,Static Website Hosting,API Reference", @@ -1423,7 +1506,7 @@ "uri":"obs_04_0078.html", "node_id":"obs_04_0078.xml", "product_code":"obs", - "code":"72", + "code":"76", "des":"For details, see OPTIONS Bucket.With the OPTIONS Object, you need to specify an object name in the URL, but an object name is not required with the OPTIONS Bucket, which ", "doc_type":"api", "kw":"OPTIONS Object,Static Website Hosting,API Reference", @@ -1443,7 +1526,7 @@ "uri":"obs_04_0079.html", "node_id":"obs_04_0079.xml", "product_code":"obs", - "code":"73", + "code":"77", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Operations on Objects", @@ -1463,10 +1546,10 @@ "uri":"obs_04_0080.html", "node_id":"obs_04_0080.xml", "product_code":"obs", - "code":"74", + "code":"78", "des":"After creating a bucket in OBS, you can use this operation to upload an object to the bucket. This operation uploads an object to a bucket. To use this operation, you mus", "doc_type":"api", - "kw":"Uploading Objects - PUT,Operations on Objects,API Reference", + "kw":"Uploading an Object - PUT,Operations on Objects,API Reference", "search_title":"", "metedata":[ { @@ -1476,17 +1559,17 @@ "opensource":"true" } ], - "title":"Uploading Objects - PUT", + "title":"Uploading an Object - PUT", "githuburl":"" }, { "uri":"obs_04_0081.html", "node_id":"obs_04_0081.xml", "product_code":"obs", - "code":"75", + "code":"79", "des":"This operation uploads an object to a bucket. To use this operation, you must have the write permission for the bucket.The name of each object in a bucket must be unique.", "doc_type":"api", - "kw":"Uploading Objects - POST,Operations on Objects,API Reference", + "kw":"Uploading an Object - POST,Operations on Objects,API Reference", "search_title":"", "metedata":[ { @@ -1496,17 +1579,17 @@ "opensource":"true" } ], - "title":"Uploading Objects - POST", + "title":"Uploading an Object - POST", "githuburl":"" }, { "uri":"obs_04_0082.html", "node_id":"obs_04_0082.xml", "product_code":"obs", - "code":"76", + "code":"80", "des":"You can perform this operation to create a copy of an existing object in OBS.Users can determine whether to copy the metadata of the source object to the target object (b", "doc_type":"api", - "kw":"Copying Objects,Operations on Objects,API Reference", + "kw":"Copying an Object,Operations on Objects,API Reference", "search_title":"", "metedata":[ { @@ -1516,17 +1599,17 @@ "opensource":"true" } ], - "title":"Copying Objects", + "title":"Copying an Object", "githuburl":"" }, { "uri":"obs_04_0083.html", "node_id":"obs_04_0083.xml", "product_code":"obs", - "code":"77", - "des":"This operation downloads objects from OBS. Before using this GET operation, check that you have the read permission for the target object. If the object owner has granted", + "code":"81", + "des":"This operation downloads an object from OBS. Before using this GET operation, check that you have the read permission for the target object. If the object owner has grant", "doc_type":"api", - "kw":"Downloading Objects,Operations on Objects,API Reference", + "kw":"Downloading an Object,Operations on Objects,API Reference", "search_title":"", "metedata":[ { @@ -1536,14 +1619,14 @@ "opensource":"true" } ], - "title":"Downloading Objects", + "title":"Downloading an Object", "githuburl":"" }, { "uri":"obs_04_0084.html", "node_id":"obs_04_0084.xml", "product_code":"obs", - "code":"78", + "code":"82", "des":"Users with the read permission on objects can perform the HeadObject operation to obtain metadata of objects. The object metadata is included in the response.This operati", "doc_type":"api", "kw":"Querying Object Metadata,Operations on Objects,API Reference", @@ -1563,7 +1646,7 @@ "uri":"obs_04_0085.html", "node_id":"obs_04_0085.xml", "product_code":"obs", - "code":"79", + "code":"83", "des":"You can perform this operation to delete an object. If you try to delete an object that does not exist, OBS will return a success message.When versioning is enabled for a", "doc_type":"api", "kw":"Deleting an Object,Operations on Objects,API Reference", @@ -1583,7 +1666,7 @@ "uri":"obs_04_0086.html", "node_id":"obs_04_0086.xml", "product_code":"obs", - "code":"80", + "code":"84", "des":"This operation can be used to batch delete some objects in a bucket. The deletion cannot be undone. After the operation is implemented, the returned information contains ", "doc_type":"api", "kw":"Deleting Objects,Operations on Objects,API Reference", @@ -1603,7 +1686,7 @@ "uri":"obs_04_0087.html", "node_id":"obs_04_0087.xml", "product_code":"obs", - "code":"81", + "code":"85", "des":"To obtain the content of an object in the Cold storage class, you need to restore the object first and then you can download it. After an object is restored, a copy of th", "doc_type":"api", "kw":"Restoring Cold Objects,Operations on Objects,API Reference", @@ -1623,7 +1706,7 @@ "uri":"obs_04_0089.html", "node_id":"obs_04_0089.xml", "product_code":"obs", - "code":"82", + "code":"86", "des":"OBS supports the control of access permission for objects. By default, only the object creator has the read and write permissions for the object. However, the creator can", "doc_type":"api", "kw":"Configuring an Object ACL,Operations on Objects,API Reference", @@ -1643,7 +1726,7 @@ "uri":"obs_04_0090.html", "node_id":"obs_04_0090.xml", "product_code":"obs", - "code":"83", + "code":"87", "des":"The implementation of this operation returns the ACL configuration of an object. You can perform this operation to view the ACL of an object, as long as you have the read", "doc_type":"api", "kw":"Obtaining Object ACL Configuration,Operations on Objects,API Reference", @@ -1663,7 +1746,7 @@ "uri":"obs_04_0091.html", "node_id":"obs_04_0091.xml", "product_code":"obs", - "code":"84", + "code":"88", "des":"This operation modifies, deletes, or adds metadata to uploaded objects in a bucket.OBS supports the six HTTP request headers: Cache-Control, Expires, Content-Encoding, Co", "doc_type":"api", "kw":"Modifying Object Metadata,Operations on Objects,API Reference", @@ -1683,7 +1766,7 @@ "uri":"obs_04_0092.html", "node_id":"obs_04_0092.xml", "product_code":"obs", - "code":"85", + "code":"89", "des":"This operation can modify an object from a specified position.This API is supported only by parallel file systems. For details about how to create a parallel file system,", "doc_type":"api", "kw":"Modifying an Object,Operations on Objects,API Reference", @@ -1703,7 +1786,7 @@ "uri":"obs_04_0093.html", "node_id":"obs_04_0093.xml", "product_code":"obs", - "code":"86", + "code":"90", "des":"This operation can truncate an object to a specified size.This API is supported only by parallel file systems. For details about how to create a parallel file system, see", "doc_type":"api", "kw":"Truncating an Object,Operations on Objects,API Reference", @@ -1723,7 +1806,7 @@ "uri":"obs_04_0094.html", "node_id":"obs_04_0094.xml", "product_code":"obs", - "code":"87", + "code":"91", "des":"This operation can rename an object.This API is supported only by parallel file systems. For details about how to create a parallel file system, see Sample Request: Creat", "doc_type":"api", "kw":"Renaming an Object,Operations on Objects,API Reference", @@ -1743,7 +1826,7 @@ "uri":"obs_04_0166.html", "node_id":"obs_04_0166.xml", "product_code":"obs", - "code":"88", + "code":"92", "des":"This operation configures or updates the retention period for objects uploaded to a bucket with WORM enabled.When you upload an object, if you do not configure a protecti", "doc_type":"api", "kw":"Configuring WORM Retention for an Object,Operations on Objects,API Reference", @@ -1763,7 +1846,7 @@ "uri":"obs_04_0096.html", "node_id":"obs_04_0096.xml", "product_code":"obs", - "code":"89", + "code":"93", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Operations on Multipart Upload", @@ -1783,7 +1866,7 @@ "uri":"obs_04_0097.html", "node_id":"obs_04_0097.xml", "product_code":"obs", - "code":"90", + "code":"94", "des":"This operation queries all the multipart upload tasks that are initialized but have not been merged or canceled in a bucket.This request uses parameters to specify the qu", "doc_type":"api", "kw":"Listing Initiated Multipart Uploads in a Bucket,Operations on Multipart Upload,API Reference", @@ -1803,7 +1886,7 @@ "uri":"obs_04_0098.html", "node_id":"obs_04_0098.xml", "product_code":"obs", - "code":"91", + "code":"95", "des":"Before using this operation, make an API operation call to create a multipart upload task. The system will return a globally unique upload ID as the multipart upload iden", "doc_type":"api", "kw":"Initiating a Multipart Upload,Operations on Multipart Upload,API Reference", @@ -1823,7 +1906,7 @@ "uri":"obs_04_0099.html", "node_id":"obs_04_0099.xml", "product_code":"obs", - "code":"92", + "code":"96", "des":"After initiating a multipart upload, you can use this operation to upload parts for the multipart upload using its task ID. When parts are uploaded in a multipart upload ", "doc_type":"api", "kw":"Uploading Parts,Operations on Multipart Upload,API Reference", @@ -1843,7 +1926,7 @@ "uri":"obs_04_0100.html", "node_id":"obs_04_0100.xml", "product_code":"obs", - "code":"93", + "code":"97", "des":"After creating a multipart upload job, you can specify its upload ID and upload a part to the job in OBS. Alternatively, you can make an API call to add a part (part of a", "doc_type":"api", "kw":"Copying Parts,Operations on Multipart Upload,API Reference", @@ -1863,7 +1946,7 @@ "uri":"obs_04_0101.html", "node_id":"obs_04_0101.xml", "product_code":"obs", - "code":"94", + "code":"98", "des":"You can perform this operation to query all parts associated to a multipart upload. The size of each part listed by this API is the same as the size of the part uploaded.", "doc_type":"api", "kw":"Listing Uploaded Parts,Operations on Multipart Upload,API Reference", @@ -1883,7 +1966,7 @@ "uri":"obs_04_0102.html", "node_id":"obs_04_0102.xml", "product_code":"obs", - "code":"95", + "code":"99", "des":"After uploading all parts for a multipart upload, you can use this operation to complete the multipart upload. Before performing this operation, you cannot download the u", "doc_type":"api", "kw":"Completing a Multipart Upload,Operations on Multipart Upload,API Reference", @@ -1903,7 +1986,7 @@ "uri":"obs_04_0103.html", "node_id":"obs_04_0103.xml", "product_code":"obs", - "code":"96", + "code":"100", "des":"You can perform this operation to abort a multipart upload. You cannot upload or list parts after operations to merge parts or abort a multipart upload are performed.This", "doc_type":"api", "kw":"Canceling a Multipart Upload Task,Operations on Multipart Upload,API Reference", @@ -1923,7 +2006,7 @@ "uri":"obs_04_0104.html", "node_id":"obs_04_0104.xml", "product_code":"obs", - "code":"97", + "code":"101", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Server-Side Encryption", @@ -1943,7 +2026,7 @@ "uri":"obs_04_0105.html", "node_id":"obs_04_0105.xml", "product_code":"obs", - "code":"98", + "code":"102", "des":"You can configure server-side encryption for objects, so that they will be encrypted or decrypted when you upload them to or download them from a bucket.The encryption an", "doc_type":"api", "kw":"Server-Side Encryption Overview,Server-Side Encryption,API Reference", @@ -1963,7 +2046,7 @@ "uri":"obs_04_0106.html", "node_id":"obs_04_0106.xml", "product_code":"obs", - "code":"99", + "code":"103", "des":"With SSE-KMS, OBS uses the keys provided by Key Management Service (KMS) for server-side encryption. You can create custom keys on KMS to encrypt your objects. If you do ", "doc_type":"api", "kw":"SSE-KMS,Server-Side Encryption,API Reference", @@ -1983,7 +2066,7 @@ "uri":"obs_04_0107.html", "node_id":"obs_04_0107.xml", "product_code":"obs", - "code":"100", + "code":"104", "des":"With SSE-C used, OBS uses the keys and MD5 values provided by customers for server-side encryption.OBS does not store your encryption keys. If you lost them, you lost the", "doc_type":"api", "kw":"SSE-C,Server-Side Encryption,API Reference", @@ -2003,7 +2086,7 @@ "uri":"obs_04_0108.html", "node_id":"obs_04_0108.xml", "product_code":"obs", - "code":"101", + "code":"105", "des":"This section lists the operations related to server-side encryption and describes HTTP protocols applicable to the operations.The following table describes the requiremen", "doc_type":"api", "kw":"API Operations Related to Server-Side Encryption,Server-Side Encryption,API Reference", @@ -2023,7 +2106,7 @@ "uri":"obs_04_0115.html", "node_id":"obs_04_0115.xml", "product_code":"obs", - "code":"102", + "code":"106", "des":"If an API call fails, no result data is returned. You can locate the cause of the error according to the error code of each API. If an API call fails, HTTP status code 3x", "doc_type":"api", "kw":"Error Codes,API Reference", @@ -2039,11 +2122,91 @@ "title":"Error Codes", "githuburl":"" }, + { + "uri":"obs_04_0109.html", + "node_id":"obs_04_0109.xml", + "product_code":"obs", + "code":"107", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"api", + "kw":"IAM Policies and Supported Actions", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"obs", + "mdname":"Sample Code for Uploading an Object", + "opensource":"true" + } + ], + "title":"IAM Policies and Supported Actions", + "githuburl":"" + }, + { + "uri":"obs_04_0110.html", + "node_id":"obs_04_0110.xml", + "product_code":"obs", + "code":"108", + "des":"This section describes fine-grained permissions management for your OBS. If your account does not require individual IAM users, skip this section.By default, new IAM user", + "doc_type":"api", + "kw":"Introduction,IAM Policies and Supported Actions,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"obs", + "mdname":"Sample Code for Uploading an Object", + "opensource":"true" + } + ], + "title":"Introduction", + "githuburl":"" + }, + { + "uri":"obs_04_0111.html", + "node_id":"obs_04_0111.xml", + "product_code":"obs", + "code":"109", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"api", + "kw":"Bucket Actions,IAM Policies and Supported Actions,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"obs", + "mdname":"Sample Code for Uploading an Object", + "opensource":"true" + } + ], + "title":"Bucket Actions", + "githuburl":"" + }, + { + "uri":"obs_04_0112.html", + "node_id":"obs_04_0112.xml", + "product_code":"obs", + "code":"110", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"api", + "kw":"Object Actions,IAM Policies and Supported Actions,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"obs", + "mdname":"Sample Code for Uploading an Object", + "opensource":"true" + } + ], + "title":"Object Actions", + "githuburl":"" + }, { "uri":"obs_04_0113.html", "node_id":"obs_04_0113.xml", "product_code":"obs", - "code":"103", + "code":"111", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Appendixes", @@ -2063,7 +2226,7 @@ "uri":"obs_04_0114.html", "node_id":"obs_04_0114.xml", "product_code":"obs", - "code":"104", + "code":"112", "des":"Table 1 lists the status codes and prompt message returned by the server to the user.Send API requests using the HTTP/HTTPS format that complies with https://www.ietf.org", "doc_type":"api", "kw":"Status Codes,Appendixes,API Reference", @@ -2083,8 +2246,8 @@ "uri":"obs_04_0116.html", "node_id":"obs_04_0116.xml", "product_code":"obs", - "code":"105", - "des":"When you call APIs, you need to use the AK and SK for authentication. To obtain the AK and SK, perform the following steps:Keep AKs and SKs properly to prevent informatio", + "code":"113", + "des":"When you call APIs, you need to use the AK and SK for authentication. To obtain the AK and SK, perform the following steps:This step is required only when you have enable", "doc_type":"api", "kw":"Obtaining Access Keys (AK/SK),Appendixes,API Reference", "search_title":"", @@ -2103,7 +2266,7 @@ "uri":"obs_04_0117.html", "node_id":"obs_04_0117.xml", "product_code":"obs", - "code":"106", + "code":"114", "des":"When making API calls, you may need to specify the domain ID (DomainID) and user ID (UserID) in some requests. To obtain them from the console, do as follows:On the My Cr", "doc_type":"api", "kw":"Obtaining a Domain ID and a User ID,Appendixes,API Reference", @@ -2123,7 +2286,7 @@ "uri":"obs_04_0118.html", "node_id":"obs_04_0118.xml", "product_code":"obs", - "code":"107", + "code":"115", "des":"After a success message is returned in response to a client's write or deletion request, the client can obtain the latest data. If a client that initiates a write request", "doc_type":"api", "kw":"Consistency of Concurrent Operations,Appendixes,API Reference", @@ -2143,7 +2306,7 @@ "uri":"obs_04_0000.html", "node_id":"obs_04_0000.xml", "product_code":"obs", - "code":"108", + "code":"116", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Change History,API Reference", diff --git a/docs/obs/api-ref/CLASS.TXT.json b/docs/obs/api-ref/CLASS.TXT.json index a34350be..d8a709d0 100644 --- a/docs/obs/api-ref/CLASS.TXT.json +++ b/docs/obs/api-ref/CLASS.TXT.json @@ -476,6 +476,42 @@ "p_code":"28", "code":"53" }, + { + "desc":"OBS uses the PUT method to configure bucket inventories. Each bucket can have a maximum of 10 inventories.To perform this operation, ensure that you have the PutBucketInv", + "product_code":"obs", + "title":"Configuring Bucket Inventories", + "uri":"obs_04_0055.html", + "doc_type":"api", + "p_code":"28", + "code":"54" + }, + { + "desc":"OBS uses the GET method to obtain a specific inventory of a bucket.To perform this operation, you must have the GetBucketInventoryConfiguration permission. By default, th", + "product_code":"obs", + "title":"Obtaining a Specific Inventory of a Bucket", + "uri":"obs_04_0056.html", + "doc_type":"api", + "p_code":"28", + "code":"55" + }, + { + "desc":"OBS uses the GET method without inventory IDs to obtain all inventories of a specified bucket. Obtained inventories are returned together on only one page.To perform this", + "product_code":"obs", + "title":"Listing All Inventories of a Bucket", + "uri":"obs_04_0057.html", + "doc_type":"api", + "p_code":"28", + "code":"56" + }, + { + "desc":"OBS uses the DELETE method to delete inventories (identified by inventory IDs) of a specified bucket.To perform this operation, you must have the DeleteBucketInventoryCon", + "product_code":"obs", + "title":"Deleting Bucket Inventories", + "uri":"obs_04_0058.html", + "doc_type":"api", + "p_code":"28", + "code":"57" + }, { "desc":"OBS uses the PUT method to configure a custom domain name for a bucket. After the configuration is successful, you can access the bucket through the domain name.Ensure th", "product_code":"obs", @@ -483,7 +519,7 @@ "uri":"obs_04_0059.html", "doc_type":"api", "p_code":"28", - "code":"54" + "code":"58" }, { "desc":"OBS uses the GET method to obtain the custom domain name of a bucket.This request message does not contain the request parameters.This request uses common headers. For de", @@ -492,7 +528,7 @@ "uri":"obs_04_0060.html", "doc_type":"api", "p_code":"28", - "code":"55" + "code":"59" }, { "desc":"OBS uses the DELETE method to delete the custom domain name of a bucket.This request uses common headers. For details, see Table 3.This request involves no elements.The r", @@ -501,7 +537,7 @@ "uri":"obs_04_0061.html", "doc_type":"api", "p_code":"28", - "code":"56" + "code":"60" }, { "desc":"OBS uses the PUT method to create or update the default server-side encryption for a bucket.After you configure encryption for a bucket, objects uploaded to this bucket w", @@ -510,7 +546,7 @@ "uri":"obs_04_0062.html", "doc_type":"api", "p_code":"28", - "code":"57" + "code":"61" }, { "desc":"OBS uses the GET method to obtain the encryption configuration of a specified bucket.To perform this operation, you must have the GetEncryptionConfiguration permission. B", @@ -519,7 +555,7 @@ "uri":"obs_04_0063.html", "doc_type":"api", "p_code":"28", - "code":"58" + "code":"62" }, { "desc":"OBS uses the DELETE method to delete the encryption configuration of a specified bucket.To perform this operation, you must have the PutEncryptionConfiguration permission", @@ -528,7 +564,7 @@ "uri":"obs_04_0064.html", "doc_type":"api", "p_code":"28", - "code":"59" + "code":"63" }, { "desc":"The requester-pays configuration allows the requester to pay for data transfer and API calls associated with accessing the requested OBS resources, while the bucket owner", @@ -537,7 +573,7 @@ "uri":"obs_04_0068.html", "doc_type":"api", "p_code":"28", - "code":"60" + "code":"64" }, { "desc":"This API obtains the requester-pays configuration information of a bucket.This request contains no message parameters.This request uses common headers. For details, see T", @@ -546,16 +582,16 @@ "uri":"obs_04_0069.html", "doc_type":"api", "p_code":"28", - "code":"61" + "code":"65" }, { - "desc":"This operation enables WORM for a bucket and allows you to configure the default WORM policy and a retention period.With the bucket's default WORM policy, if you do not s", + "desc":"This operation allows you to configure the default WORM policy and a retention period for a bucket.With the bucket's default WORM policy, if you do not specify a WORM pol", "product_code":"obs", "title":"Configuring a Default WORM Policy for a Bucket", "uri":"obs_04_0167.html", "doc_type":"api", "p_code":"28", - "code":"62" + "code":"66" }, { "desc":"This operation returns the default WORM policy of a bucket.To perform this operation, you must have the GetBucketObjectLockConfiguration permission. The bucket owner can ", @@ -564,7 +600,7 @@ "uri":"obs_04_0168.html", "doc_type":"api", "p_code":"28", - "code":"63" + "code":"67" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -573,7 +609,7 @@ "uri":"obs_04_0070.html", "doc_type":"api", "p_code":"19", - "code":"64" + "code":"68" }, { "desc":"OBS allows you to store static web page resources such as HTML web pages, flash files, videos, and audios in a bucket. When a client accesses these resources from the web", @@ -581,8 +617,8 @@ "title":"Configuring Static Website Hosting for a Bucket", "uri":"obs_04_0071.html", "doc_type":"api", - "p_code":"64", - "code":"65" + "p_code":"68", + "code":"69" }, { "desc":"You can perform this operation to get the static website hosting configuration of a bucket.To perform this operation, you must have the GetBucketWebsite permission. By de", @@ -590,8 +626,8 @@ "title":"Obtaining the Static Website Hosting Configuration of a Bucket", "uri":"obs_04_0072.html", "doc_type":"api", - "p_code":"64", - "code":"66" + "p_code":"68", + "code":"70" }, { "desc":"You can perform this operation to delete the website configuration of a bucket.To perform this operation, you must have the DeleteBucketWebsite permission. By default, on", @@ -599,8 +635,8 @@ "title":"Deleting the Static Website Hosting Configuration of a Bucket", "uri":"obs_04_0073.html", "doc_type":"api", - "p_code":"64", - "code":"67" + "p_code":"68", + "code":"71" }, { "desc":"Cross-origin resource sharing (CORS) is a standard mechanism proposed by World Wide Web Consortium (W3C) and allows cross-origin requests from clients. For standard web p", @@ -608,8 +644,8 @@ "title":"Configuring Bucket CORS", "uri":"obs_04_0074.html", "doc_type":"api", - "p_code":"64", - "code":"68" + "p_code":"68", + "code":"72" }, { "desc":"You can perform this operation to obtain CORS configuration information about a specified bucket.To perform this operation, you must have the GetBucketCORS permission. By", @@ -617,8 +653,8 @@ "title":"Obtaining the CORS Configuration of a Bucket", "uri":"obs_04_0075.html", "doc_type":"api", - "p_code":"64", - "code":"69" + "p_code":"68", + "code":"73" }, { "desc":"This operation is used to delete the CORS configuration of a bucket. After the CORS configuration is deleted, the bucket and objects in it cannot be accessed by requests ", @@ -626,8 +662,8 @@ "title":"Deleting the CORS Configuration of a Bucket", "uri":"obs_04_0076.html", "doc_type":"api", - "p_code":"64", - "code":"70" + "p_code":"68", + "code":"74" }, { "desc":"OPTIONS refers to pre-requests that are sent to servers by clients. Generally, the requests are used to check whether clients have permissions to perform operations on se", @@ -635,8 +671,8 @@ "title":"OPTIONS Bucket", "uri":"obs_04_0077.html", "doc_type":"api", - "p_code":"64", - "code":"71" + "p_code":"68", + "code":"75" }, { "desc":"For details, see OPTIONS Bucket.With the OPTIONS Object, you need to specify an object name in the URL, but an object name is not required with the OPTIONS Bucket, which ", @@ -644,8 +680,8 @@ "title":"OPTIONS Object", "uri":"obs_04_0078.html", "doc_type":"api", - "p_code":"64", - "code":"72" + "p_code":"68", + "code":"76" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -654,43 +690,43 @@ "uri":"obs_04_0079.html", "doc_type":"api", "p_code":"19", - "code":"73" + "code":"77" }, { "desc":"After creating a bucket in OBS, you can use this operation to upload an object to the bucket. This operation uploads an object to a bucket. To use this operation, you mus", "product_code":"obs", - "title":"Uploading Objects - PUT", + "title":"Uploading an Object - PUT", "uri":"obs_04_0080.html", "doc_type":"api", - "p_code":"73", - "code":"74" + "p_code":"77", + "code":"78" }, { "desc":"This operation uploads an object to a bucket. To use this operation, you must have the write permission for the bucket.The name of each object in a bucket must be unique.", "product_code":"obs", - "title":"Uploading Objects - POST", + "title":"Uploading an Object - POST", "uri":"obs_04_0081.html", "doc_type":"api", - "p_code":"73", - "code":"75" + "p_code":"77", + "code":"79" }, { "desc":"You can perform this operation to create a copy of an existing object in OBS.Users can determine whether to copy the metadata of the source object to the target object (b", "product_code":"obs", - "title":"Copying Objects", + "title":"Copying an Object", "uri":"obs_04_0082.html", "doc_type":"api", - "p_code":"73", - "code":"76" + "p_code":"77", + "code":"80" }, { - "desc":"This operation downloads objects from OBS. Before using this GET operation, check that you have the read permission for the target object. If the object owner has granted", + "desc":"This operation downloads an object from OBS. Before using this GET operation, check that you have the read permission for the target object. If the object owner has grant", "product_code":"obs", - "title":"Downloading Objects", + "title":"Downloading an Object", "uri":"obs_04_0083.html", "doc_type":"api", - "p_code":"73", - "code":"77" + "p_code":"77", + "code":"81" }, { "desc":"Users with the read permission on objects can perform the HeadObject operation to obtain metadata of objects. The object metadata is included in the response.This operati", @@ -698,8 +734,8 @@ "title":"Querying Object Metadata", "uri":"obs_04_0084.html", "doc_type":"api", - "p_code":"73", - "code":"78" + "p_code":"77", + "code":"82" }, { "desc":"You can perform this operation to delete an object. If you try to delete an object that does not exist, OBS will return a success message.When versioning is enabled for a", @@ -707,8 +743,8 @@ "title":"Deleting an Object", "uri":"obs_04_0085.html", "doc_type":"api", - "p_code":"73", - "code":"79" + "p_code":"77", + "code":"83" }, { "desc":"This operation can be used to batch delete some objects in a bucket. The deletion cannot be undone. After the operation is implemented, the returned information contains ", @@ -716,8 +752,8 @@ "title":"Deleting Objects", "uri":"obs_04_0086.html", "doc_type":"api", - "p_code":"73", - "code":"80" + "p_code":"77", + "code":"84" }, { "desc":"To obtain the content of an object in the Cold storage class, you need to restore the object first and then you can download it. After an object is restored, a copy of th", @@ -725,8 +761,8 @@ "title":"Restoring Cold Objects", "uri":"obs_04_0087.html", "doc_type":"api", - "p_code":"73", - "code":"81" + "p_code":"77", + "code":"85" }, { "desc":"OBS supports the control of access permission for objects. By default, only the object creator has the read and write permissions for the object. However, the creator can", @@ -734,8 +770,8 @@ "title":"Configuring an Object ACL", "uri":"obs_04_0089.html", "doc_type":"api", - "p_code":"73", - "code":"82" + "p_code":"77", + "code":"86" }, { "desc":"The implementation of this operation returns the ACL configuration of an object. You can perform this operation to view the ACL of an object, as long as you have the read", @@ -743,8 +779,8 @@ "title":"Obtaining Object ACL Configuration", "uri":"obs_04_0090.html", "doc_type":"api", - "p_code":"73", - "code":"83" + "p_code":"77", + "code":"87" }, { "desc":"This operation modifies, deletes, or adds metadata to uploaded objects in a bucket.OBS supports the six HTTP request headers: Cache-Control, Expires, Content-Encoding, Co", @@ -752,8 +788,8 @@ "title":"Modifying Object Metadata", "uri":"obs_04_0091.html", "doc_type":"api", - "p_code":"73", - "code":"84" + "p_code":"77", + "code":"88" }, { "desc":"This operation can modify an object from a specified position.This API is supported only by parallel file systems. For details about how to create a parallel file system,", @@ -761,8 +797,8 @@ "title":"Modifying an Object", "uri":"obs_04_0092.html", "doc_type":"api", - "p_code":"73", - "code":"85" + "p_code":"77", + "code":"89" }, { "desc":"This operation can truncate an object to a specified size.This API is supported only by parallel file systems. For details about how to create a parallel file system, see", @@ -770,8 +806,8 @@ "title":"Truncating an Object", "uri":"obs_04_0093.html", "doc_type":"api", - "p_code":"73", - "code":"86" + "p_code":"77", + "code":"90" }, { "desc":"This operation can rename an object.This API is supported only by parallel file systems. For details about how to create a parallel file system, see Sample Request: Creat", @@ -779,8 +815,8 @@ "title":"Renaming an Object", "uri":"obs_04_0094.html", "doc_type":"api", - "p_code":"73", - "code":"87" + "p_code":"77", + "code":"91" }, { "desc":"This operation configures or updates the retention period for objects uploaded to a bucket with WORM enabled.When you upload an object, if you do not configure a protecti", @@ -788,8 +824,8 @@ "title":"Configuring WORM Retention for an Object", "uri":"obs_04_0166.html", "doc_type":"api", - "p_code":"73", - "code":"88" + "p_code":"77", + "code":"92" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -798,7 +834,7 @@ "uri":"obs_04_0096.html", "doc_type":"api", "p_code":"19", - "code":"89" + "code":"93" }, { "desc":"This operation queries all the multipart upload tasks that are initialized but have not been merged or canceled in a bucket.This request uses parameters to specify the qu", @@ -806,8 +842,8 @@ "title":"Listing Initiated Multipart Uploads in a Bucket", "uri":"obs_04_0097.html", "doc_type":"api", - "p_code":"89", - "code":"90" + "p_code":"93", + "code":"94" }, { "desc":"Before using this operation, make an API operation call to create a multipart upload task. The system will return a globally unique upload ID as the multipart upload iden", @@ -815,8 +851,8 @@ "title":"Initiating a Multipart Upload", "uri":"obs_04_0098.html", "doc_type":"api", - "p_code":"89", - "code":"91" + "p_code":"93", + "code":"95" }, { "desc":"After initiating a multipart upload, you can use this operation to upload parts for the multipart upload using its task ID. When parts are uploaded in a multipart upload ", @@ -824,8 +860,8 @@ "title":"Uploading Parts", "uri":"obs_04_0099.html", "doc_type":"api", - "p_code":"89", - "code":"92" + "p_code":"93", + "code":"96" }, { "desc":"After creating a multipart upload job, you can specify its upload ID and upload a part to the job in OBS. Alternatively, you can make an API call to add a part (part of a", @@ -833,8 +869,8 @@ "title":"Copying Parts", "uri":"obs_04_0100.html", "doc_type":"api", - "p_code":"89", - "code":"93" + "p_code":"93", + "code":"97" }, { "desc":"You can perform this operation to query all parts associated to a multipart upload. The size of each part listed by this API is the same as the size of the part uploaded.", @@ -842,8 +878,8 @@ "title":"Listing Uploaded Parts", "uri":"obs_04_0101.html", "doc_type":"api", - "p_code":"89", - "code":"94" + "p_code":"93", + "code":"98" }, { "desc":"After uploading all parts for a multipart upload, you can use this operation to complete the multipart upload. Before performing this operation, you cannot download the u", @@ -851,8 +887,8 @@ "title":"Completing a Multipart Upload", "uri":"obs_04_0102.html", "doc_type":"api", - "p_code":"89", - "code":"95" + "p_code":"93", + "code":"99" }, { "desc":"You can perform this operation to abort a multipart upload. You cannot upload or list parts after operations to merge parts or abort a multipart upload are performed.This", @@ -860,8 +896,8 @@ "title":"Canceling a Multipart Upload Task", "uri":"obs_04_0103.html", "doc_type":"api", - "p_code":"89", - "code":"96" + "p_code":"93", + "code":"100" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -870,7 +906,7 @@ "uri":"obs_04_0104.html", "doc_type":"api", "p_code":"19", - "code":"97" + "code":"101" }, { "desc":"You can configure server-side encryption for objects, so that they will be encrypted or decrypted when you upload them to or download them from a bucket.The encryption an", @@ -878,8 +914,8 @@ "title":"Server-Side Encryption Overview", "uri":"obs_04_0105.html", "doc_type":"api", - "p_code":"97", - "code":"98" + "p_code":"101", + "code":"102" }, { "desc":"With SSE-KMS, OBS uses the keys provided by Key Management Service (KMS) for server-side encryption. You can create custom keys on KMS to encrypt your objects. If you do ", @@ -887,8 +923,8 @@ "title":"SSE-KMS", "uri":"obs_04_0106.html", "doc_type":"api", - "p_code":"97", - "code":"99" + "p_code":"101", + "code":"103" }, { "desc":"With SSE-C used, OBS uses the keys and MD5 values provided by customers for server-side encryption.OBS does not store your encryption keys. If you lost them, you lost the", @@ -896,8 +932,8 @@ "title":"SSE-C", "uri":"obs_04_0107.html", "doc_type":"api", - "p_code":"97", - "code":"100" + "p_code":"101", + "code":"104" }, { "desc":"This section lists the operations related to server-side encryption and describes HTTP protocols applicable to the operations.The following table describes the requiremen", @@ -905,8 +941,8 @@ "title":"API Operations Related to Server-Side Encryption", "uri":"obs_04_0108.html", "doc_type":"api", - "p_code":"97", - "code":"101" + "p_code":"101", + "code":"105" }, { "desc":"If an API call fails, no result data is returned. You can locate the cause of the error according to the error code of each API. If an API call fails, HTTP status code 3x", @@ -915,7 +951,43 @@ "uri":"obs_04_0115.html", "doc_type":"api", "p_code":"", - "code":"102" + "code":"106" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"IAM Policies and Supported Actions", + "uri":"obs_04_0109.html", + "doc_type":"api", + "p_code":"", + "code":"107" + }, + { + "desc":"This section describes fine-grained permissions management for your OBS. If your account does not require individual IAM users, skip this section.By default, new IAM user", + "product_code":"obs", + "title":"Introduction", + "uri":"obs_04_0110.html", + "doc_type":"api", + "p_code":"107", + "code":"108" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Bucket Actions", + "uri":"obs_04_0111.html", + "doc_type":"api", + "p_code":"107", + "code":"109" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Object Actions", + "uri":"obs_04_0112.html", + "doc_type":"api", + "p_code":"107", + "code":"110" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -924,7 +996,7 @@ "uri":"obs_04_0113.html", "doc_type":"api", "p_code":"", - "code":"103" + "code":"111" }, { "desc":"Table 1 lists the status codes and prompt message returned by the server to the user.Send API requests using the HTTP/HTTPS format that complies with https://www.ietf.org", @@ -932,17 +1004,17 @@ "title":"Status Codes", "uri":"obs_04_0114.html", "doc_type":"api", - "p_code":"103", - "code":"104" + "p_code":"111", + "code":"112" }, { - "desc":"When you call APIs, you need to use the AK and SK for authentication. To obtain the AK and SK, perform the following steps:Keep AKs and SKs properly to prevent informatio", + "desc":"When you call APIs, you need to use the AK and SK for authentication. To obtain the AK and SK, perform the following steps:This step is required only when you have enable", "product_code":"obs", "title":"Obtaining Access Keys (AK/SK)", "uri":"obs_04_0116.html", "doc_type":"api", - "p_code":"103", - "code":"105" + "p_code":"111", + "code":"113" }, { "desc":"When making API calls, you may need to specify the domain ID (DomainID) and user ID (UserID) in some requests. To obtain them from the console, do as follows:On the My Cr", @@ -950,8 +1022,8 @@ "title":"Obtaining a Domain ID and a User ID", "uri":"obs_04_0117.html", "doc_type":"api", - "p_code":"103", - "code":"106" + "p_code":"111", + "code":"114" }, { "desc":"After a success message is returned in response to a client's write or deletion request, the client can obtain the latest data. If a client that initiates a write request", @@ -959,8 +1031,8 @@ "title":"Consistency of Concurrent Operations", "uri":"obs_04_0118.html", "doc_type":"api", - "p_code":"103", - "code":"107" + "p_code":"111", + "code":"115" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -969,6 +1041,6 @@ "uri":"obs_04_0000.html", "doc_type":"api", "p_code":"", - "code":"108" + "code":"116" } ] \ No newline at end of file diff --git a/docs/obs/api-ref/obs_04_0000.html b/docs/obs/api-ref/obs_04_0000.html index 02485d39..ea972521 100644 --- a/docs/obs/api-ref/obs_04_0000.html +++ b/docs/obs/api-ref/obs_04_0000.html @@ -8,7 +8,28 @@ -

2023-08-15

+

2024-03-21

+ +

This is the eleventh official release.

+

This issue incorporates the following change:

+ + + +

2024-02-18

+ +

This is the tenth official release.

+

This issue incorporates the following change:

+ + + +

2023-12-27

+ +

This is the ninth official release.

+

This issue incorporates the following change:

+ + + +

2023-08-15

This is the eighth official release.

This issue incorporates the following change:

diff --git a/docs/obs/api-ref/obs_04_0005.html b/docs/obs/api-ref/obs_04_0005.html index b3ff58b4..e40c0b69 100644 --- a/docs/obs/api-ref/obs_04_0005.html +++ b/docs/obs/api-ref/obs_04_0005.html @@ -174,6 +174,26 @@

Obtains the number of objects in a bucket and the space occupied by the objects.

+

Configuring Bucket Inventories

+ +

Configures an inventory rule for a bucket. OBS provides bucket inventories to facilitate your management of objects in a bucket. You can configure bucket inventories to periodically list objects in a bucket. During the listing of objects, object metadata is saved in a CSV file, which is uploaded to the specified bucket.

+ + +

Obtaining a Specific Inventory of a Bucket

+ +

Obtains an inventory rule of a specified bucket.

+ + +

Listing All Inventories of a Bucket

+ +

Obtains all inventory rules of a specified bucket.

+ + +

Deleting Bucket Inventories

+ +

Deletes an inventory rule of a specified bucket.

+ +

Configuring a Custom Domain Name for a Bucket

Configures a custom domain name for a bucket. Once a user-defined domain name is successfully configured, the bucket can be accessed through the user-defined domain name.

@@ -286,24 +306,24 @@ -

Uploading Objects - PUT

+

Uploading an Object - PUT

-

Uploads simple objects to a specified bucket.

+

Uploads an object to a specified bucket.

-

Uploading Objects - POST

+

Uploading an Object - POST

-

Uploads objects to a specified bucket based on tables.

+

Uploads an object to a specified bucket based on tables.

-

Copying Objects

+

Copying an Object

Creates a copy for an existing object in OBS.

-

Downloading Objects

+

Downloading an Object

-

Downloads objects.

+

Downloads an object.

Querying Object Metadata

diff --git a/docs/obs/api-ref/obs_04_0010.html b/docs/obs/api-ref/obs_04_0010.html index b0d2c9ef..31a57ff9 100644 --- a/docs/obs/api-ref/obs_04_0010.html +++ b/docs/obs/api-ref/obs_04_0010.html @@ -57,7 +57,7 @@

Indicates the OBS resource specified by an HTTP request. This parameter is constructed as follows:

<Bucket name + Object name> + [Subresource 1] + [Subresource 2] + ...

-
  1. Bucket name and object name, for example, /bucket/object. If no object name is specified, for example, /bucket/, the entire bucket is listed. If no bucket name is specified either, the value of this field is /.
  2. If a subresource (such as ?acl and ?logging) exists, the subresource must be added.

    OBS supports a variety of sub-resources, including acl, attname, cors, customdomain, delete, deletebucket, encryption, length, lifecycle, location, logging, metadata, modify, name, notification, partNumber, policy, position, quota, rename, replication, requestPayment, response-cache-control, response-content-disposition, response-content-encoding, response-content-language, response-content-type, response-expires, restore, storageClass, storagePolicy, storageinfo, tagging, torrent, truncate, uploadId, uploads, versionId, versioning, versions, website, object-lock, retention, and x-obs-security-token.

    +
    1. Bucket name and object name, for example, /bucket/object. If no object name is specified, for example, /bucket/, the entire bucket is listed. If no bucket name is specified either, the value of this field is /.
    2. If a subresource (such as ?acl and ?logging) exists, the subresource must be added.

      OBS supports a variety of sub-resources, including acl, attname, cors, customdomain, delete, deletebucket, encryption, inventory, length, lifecycle, location, logging, metadata, modify, name, notification, partNumber, policy, position, quota, rename, replication, requestPayment, response-cache-control, response-content-disposition, response-content-encoding, response-content-language, response-content-type, response-expires, restore, storageClass, storagePolicy, storageinfo, tagging, torrent, truncate, uploadId, uploads, versionId, versioning, versions, website, object-lock, retention, and x-obs-security-token.

    3. If there are multiple subresources, sort them in the alphabetical order from a to z, and use & to combine the subresources.
    NOTE:
    • A subresource is unique. Do not add subresources with the same keyword (for example, key=value1&key=value2) in the same request URL. In this case, signature is computed only based on the first subresource, and only the value of the first subresource takes effect on the actual service.
    • Using the GetObject API as an example, assume there is a bucket named bucket-test and an object named object-test in the bucket, and the object version is xxx. When obtaining the object, you need to rewrite Content-Type to text/plain. Then, the CanonicalizedResource calculated by the signature is /bucket-test/object-test?response-content-type=text/plain&versionId=xxx.
    @@ -490,7 +490,9 @@ Authorization: OBS UDSIAMSTUBTEST000254:ydH8ffpcbS6YpeOMcEZfn0wE90c= 217 218 219 -220
    import java.io.UnsupportedEncodingException;
    +220
    +221
    +222
    import java.io.UnsupportedEncodingException;
     import java.net.URLEncoder;
     import java.security.InvalidKeyException;
     import java.security.NoSuchAlgorithmException;
    @@ -520,7 +522,7 @@ Authorization: OBS UDSIAMSTUBTEST000254:ydH8ffpcbS6YpeOMcEZfn0wE90c=
      
      private static final List<String> SUB_RESOURCES = Collections.unmodifiableList(Arrays.asList(
        "CDNNotifyConfiguration", "acl", "attname",  "cors", "customdomain", "delete",
    -   "deletebucket", "encryption", "length", "lifecycle", "location", "logging",
    +   "deletebucket", "encryption", "inventory", "length", "lifecycle", "location", "logging",
        "metadata", "mirrorBackToSource", "modify", "name", "notification", "obscompresspolicy", 
        "partNumber", "policy", "position", "quota","rename", "replication", "requestPayment", "response-cache-control", 
        "response-content-disposition","response-content-encoding", "response-content-language", "response-content-type", 
    @@ -691,10 +693,12 @@ Authorization: OBS UDSIAMSTUBTEST000254:ydH8ffpcbS6YpeOMcEZfn0wE90c=
     	}
     	
     	public static void main(String[] args) throws Exception {
    -		
     		SignDemo demo = new SignDemo();
    -		demo.ak = "<your-access-key-id>";
    -		demo.sk = "<your-secret-key-id>";
    +
    +                /* Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK and store them in the configuration file or environment variables.
    +                In this example, the AK and SK are stored in environment variables for identity authentication. Before running the code in this example, configure environment variables OTCCLOUD_SDK_AK and OTCCLOUD_SDK_SK. */
    +		demo.ak = System.getenv("OTCCLOUD_SDK_AK");
    +		demo.sk = System.getenv("OTCCLOUD_SDK_SK");
     		
     		String bucketName = "bucket-test";
     		String objectName = "hello.jpg";
    @@ -736,14 +740,18 @@ Authorization: OBS UDSIAMSTUBTEST000254:ydH8ffpcbS6YpeOMcEZfn0wE90c=
     19
     20
     21
    -22
    import sys
    +22
    +23
    +24
    import sys
     import hashlib
     import hmac
     import binascii
     from datetime import datetime
     IS_PYTHON2 = sys.version_info.major == 2 or sys.version < '3'
     
    -yourSecretAccessKeyID = '275hSvB6EEOorBNsMDEfOaICQnilYaPZhXUaSK64'
    +# Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK and store them in the configuration file or environment variables.
    +# In this example, the AK and SK are stored in environment variables for identity authentication. Before running the code in this example, configure environment variables OTCCLOUD_SDK_AK and OTCCLOUD_SDK_SK.
    +yourSecretAccessKeyID = os.getenv('OTCCLOUD_SDK_SK')
     httpMethod = "PUT"
     contentType = "application/xml"
     # "date" is the time when the request was actually generated
    diff --git a/docs/obs/api-ref/obs_04_0011.html b/docs/obs/api-ref/obs_04_0011.html
    index 03270a1d..8e1eaa36 100644
    --- a/docs/obs/api-ref/obs_04_0011.html
    +++ b/docs/obs/api-ref/obs_04_0011.html
    @@ -2,10 +2,10 @@
     
     

    Authentication of Signature in a URL

    OBS allows users to construct a URL for a specific operation. The URL contains information such as the user's AK, signature, validity period, and resources. Any user who obtains the URL can perform the operation. After receiving the request, the OBS deems that the operation is performed by the user who issues the URL. For example, if the URL of an object download request carries signature information is constructed, the user who obtains the URL can download the object, but the URL is valid only within the expiration time specified by the parameter of Expires. The URL that carries the signature is used to allow others to use the pre-issued URL for identity authentication when the SK is not provided, and perform the predefined operation.

    -

    The format of the message containing the signature request in the URL is as follows:

    +

    The format of the message where a signature is contained in the URL:

    GET /ObjectKey?AccessKeyId=AccessKeyID&Expires=ExpiresValue&Signature=signature HTTP/1.1
     Host: bucketname.obs.region.example.com
    -

    The format of the message containing the temporary AK/SK and security token in the URL for downloading objects is as follows:

    +

    The format of the message where a temporary AK/SK pair and a security token are used in the URL for downloading objects:

    GET /ObjectKey?AccessKeyId=AccessKeyID&Expires=ExpiresValue&Signature=signature&x-obs-security-token=securitytoken HTTP/1.1
     Host: bucketname.obs.region.example.com

    Table 1 describes the parameters.

    @@ -53,12 +53,8 @@ Host: bucketname.obs.region.example.com<
    -

    The signature computing process is as follows:

    -

    1. Construct the StringToSign.

    -

    2. Perform UTF-8 encoding on the result obtained from the preceding step.

    -

    3. Use the SK to perform the HMAC-SHA1 signature calculation on the result obtained from step 2.

    -

    4. Perform Base64 encoding on the result obtained from step 3.

    -

    5. Perform URL encoding on the result of step 4 to obtain the signature.

    +

    The process of calculating a signature is as follows:

    +
    1. Construct the StringToSign.
    2. Encode the result of 1 in UTF-8.
    3. Use the SK to calculate the HMAC-SHA1 signature on the result of 2.
    4. Encode the result of 3 in Base64.
    5. Encode the result of 4 in URL to obtain the signature.

    The StringToSign is constructed according to the following rules. Table 2 describes the parameters.

    StringToSign = 
    @@ -68,44 +64,44 @@ Host: bucketname.obs.region.example.com<
          Expires + "\n" +   
          CanonicalizedHeaders +   CanonicalizedResource; 
    -
    Table 2 Parameters required for constructing a StringToSign

    Parameter

    +
    - - - - - - - - - - - - -
    Table 2 Parameters required for constructing a StringToSign

    Parameter

    Description

    +

    Description

    HTTP-Verb

    +

    HTTP-Verb

    Indicates an HTTP request method supported by the OBS REST API. The value can be an HTTP verb such as PUT, GET, or DELETE.

    +

    Indicates an HTTP request method supported by the OBS REST API. The value can be an HTTP verb such as PUT, GET, or DELETE.

    Content-MD5

    +

    Content-MD5

    Base64-encoded 128-bit MD5 digest of the message according to RFC 1864. This parameter can be empty.

    +

    Base64-encoded 128-bit MD5 digest of the message according to RFC 1864. This parameter can be empty.

    Content-Type

    +

    Content-Type

    Specifies the message type, for example, text/plain.

    +

    Specifies the message type, for example, text/plain.

    If a request does not contain this header field, this parameter is deemed as an empty string.

    Expires

    +

    Expires

    Expiration time of the temporary authorization, that is, the value of parameter Expires in the request message: ExpiresValue.

    +

    Expiration time of the temporary authorization, that is, the value of parameter Expires in the request message: ExpiresValue.

    CanonicalizedHeaders

    +

    CanonicalizedHeaders

    OBS request header field in an HTTP request header, referring to header fields started with x-obs-, for example, x-obs-date, x-obs-acl, and x-obs-meta-*.

    -
    1. All characters of keywords in the header field must be converted to lower-case letters. If a request contains multiple header fields, these fields should be organized by keywords in the alphabetical order from a to z.
    2. If multiple header fields in a request have the same prefix, combine the header fields into one. For example, x-obs-meta-name:name1 and x-obs-meta-name:name2 should be reorganized into x-obs-meta-name:name1,name2. Use comma to separate the values.
    3. Keywords in the request header field cannot contain non-ASCII or unrecognizable characters, which are also not advisable for values in the request header field. If the two types of characters are necessary, they should be encoded and decoded on the client side. Either URL encoding or Base64 encoding is acceptable, but the server does not perform decoding.
    4. Delete meaningless spaces and tabs in a header field. For example, x-obs-meta-name: name (with a meaningless space in the front of name) must be changed to x-obs-meta-name:name.
    5. Each header field occupies a separate line.
    +

    OBS request header field in an HTTP request header, referring to header fields starting with x-obs-, such as, x-obs-date, x-obs-acl, and x-obs-meta-*.

    +
    1. All characters of keywords in the header field must be converted to lower-case letters. If a request contains multiple header fields, these fields should be organized by keywords in the alphabetical order from a to z.
    2. If multiple header fields in a request have the same prefix, combine the header fields into one. For example, x-obs-meta-name:name1 and x-obs-meta-name:name2 should be reorganized into x-obs-meta-name:name1,name2. Use comma to separate the values.
    3. Keywords in the request header field cannot contain non-ASCII or unrecognizable characters, which are also not advisable for values in the request header field. If the two types of characters are necessary, they should be encoded and decoded on the client side. Either URL encoding or Base64 encoding is acceptable, but the server does not perform decoding.
    4. Delete meaningless spaces and tabs in a header field. For example, x-obs-meta-name: name (with a meaningless space before name) must be changed to x-obs-meta-name:name.
    5. Each header field occupies a separate line.

    CanonicalizedResource

    +

    CanonicalizedResource

    Indicates the OBS resource specified by an HTTP request. This parameter is constructed as follows:

    +

    Indicates the OBS resource specified by an HTTP request. This parameter is constructed as follows:

    <Bucket name + Object name> + [Subresource 1] + [Subresource 2] + ...

    -
    1. Bucket name and object name, for example, /bucket/object. If no object name is specified, for example, /bucket/, the entire bucket is listed. If no bucket name is specified either, the value of this field is /.
    2. If a subresource (such as ?acl and ?logging) exists, the subresource must be added.

      OBS supports a variety of sub-resources, including acl, attname, cors, customdomain, delete, deletebucket, encryption, length, lifecycle, location, logging, metadata, modify, name, notification, partNumber, policy, position, quota, rename, replication, requestPayment, response-cache-control, response-content-disposition, response-content-encoding, response-content-language, response-content-type, response-expires, restore, storageClass, storagePolicy, storageinfo, tagging, torrent, truncate, uploadId, uploads, versionId, versioning, versions, website, object-lock, retention, and x-obs-security-token.

      +
      1. Bucket name and object name, for example, /bucket/object. If no object name is specified, for example, /bucket/, the entire bucket is listed. If no bucket name is specified either, the value of this field is /.
      2. If a subresource (such as ?acl and ?logging) exists, the subresource must be added.

        OBS supports a variety of sub-resources, including acl, attname, cors, customdomain, delete, deletebucket, encryption, inventory, length, lifecycle, location, logging, metadata, modify, name, notification, partNumber, policy, position, quota, rename, replication, requestPayment, response-cache-control, response-content-disposition, response-content-encoding, response-content-language, response-content-type, response-expires, restore, storageClass, storagePolicy, storageinfo, tagging, torrent, truncate, uploadId, uploads, versionId, versioning, versions, website, object-lock, retention, and x-obs-security-token.

      3. If there are multiple subresources, sort them in the alphabetical order from a to z, and use & to combine the subresources.
      NOTE:
      • A subresource is unique. Do not add subresources with the same keyword (for example, key=value1&key=value2) in the same request URL. In this case, signature is computed only based on the first subresource, and only the value of the first subresource takes effect on the actual service.
      • Using the GetObject API as an example, assume there is a bucket named bucket-test and an object named object-test in the bucket, and the object version is xxx. When obtaining the object, you need to rewrite Content-Type to text/plain. Then, the CanonicalizedResource calculated by the signature is /bucket-test/object-test?response-content-type=text/plain&versionId=xxx.
      @@ -116,22 +112,21 @@ Host: bucketname.obs.region.example.com<

      The signature is generated as follows based on the StringToSign and SK. The hash-based message authentication code algorithm (HMAC algorithm) is used to generate the signature.

      Signature = URL-Encode( Base64( HMAC-SHA1( YourSecretAccessKeyID, UTF-8-Encoding-Of( StringToSign ) ) ) )
      -

      The method for calculating the signature carried in the URL is different from that for calculating the authorization signature carried in a header.

      • The signature in the URL must be encoded using the URL after Base64 encoding.
      • Expires in StringToSign corresponds to Date in authorization information.

      Generate a predefined URL instance for the browser by carrying the signature in the URL.

      -
      Table 3 Request that has the signature carried in the URL and the StringToSign

      Request Headers

      +
      - - -
      Table 3 Request that has the signature carried in the URL and the StringToSign

      Request Header

      StringToSign

      +

      StringToSign

      GET /objectkey?AccessKeyId=MFyfvK41ba2giqM7Uio6PznpdUKGpownRZlmVmHc&Expires=1532779451&Signature=0Akylf43Bm3mD1bh2rM3dmVp1Bo%3D HTTP/1.1

      +

      GET /objectkey?AccessKeyId=MFyfvK41ba2giqM7Uio6PznpdUKGpownRZlmVmHc&Expires=1532779451&Signature=0Akylf43Bm3mD1bh2rM3dmVp1Bo%3D HTTP/1.1

      Host: examplebucket.obs.region.example.com

      GET \n

      +

      GET \n

      \n

      \n

      1532779451\n

      @@ -142,16 +137,16 @@ Host: bucketname.obs.region.example.com<
      -
      Table 4 Object download request that has the temporary AK/SK and security token carried in the URL and the StringToSign

      Request Header

      +
      - - -
      Table 4 Object download request that has the temporary AK/SK and security token carried in the URL and the StringToSign

      Request Header

      StringToSign

      +

      StringToSign

      GET /objectkey?AccessKeyId=MFyfvK41ba2giqM7Uio6PznpdUKGpownRZlmVmHc&Expires=1532779451&Signature=0Akylf43Bm3mD1bh2rM3dmVp1Bo%3D&x-obs-security-token=YwkaRTbdY8g7q.... HTTP/1.1

      +

      GET /objectkey?AccessKeyId=MFyfvK41ba2giqM7Uio6PznpdUKGpownRZlmVmHc&Expires=1532779451&Signature=0Akylf43Bm3mD1bh2rM3dmVp1Bo%3D&x-obs-security-token=YwkaRTbdY8g7q.... HTTP/1.1

      Host: examplebucket.obs.region.example.com

      GET \n

      +

      GET \n

      \n

      \n

      1532779451\n

      @@ -170,7 +165,7 @@ Host: bucketname.obs.region.example.com<

      curl http(s)://examplebucket.obs.region.example.com/objectkey?AccessKeyId=AccessKeyID\&Expires=1532779451\&Signature=0Akylf43Bm3mD1bh2rM3dmVp1Bo%3D -X GET -o output

      If you want to use the pre-defined URL generated by the signature carried in the URL in the browser, do not use Content-MD5, Content-Type, or CanonicalizedHeaders that can only be carried in the header to calculate the signature. Otherwise, the browser cannot carry these parameters. After the request is sent to the server, a message is displayed indicating that the signature is incorrect.

      -

      Signature Algorithm in Java

        1
      +

      Signature Calculation in Java

        1
         2
         3
         4
      @@ -419,28 +414,7 @@ Host: bucketname.obs.region.example.com<
       247
       248
       249
      -250
      -251
      -252
      -253
      -254
      -255
      -256
      -257
      -258
      -259
      -260
      -261
      -262
      -263
      -264
      -265
      -266
      -267
      -268
      -269
      -270
      -271
      import java.io.UnsupportedEncodingException;
      +250
      import java.io.UnsupportedEncodingException;
       import java.net.URLEncoder;
       import java.security.InvalidKeyException;
       import java.security.NoSuchAlgorithmException;
      @@ -468,7 +442,7 @@ Host: bucketname.obs.region.example.com<
       
           private static final List<String> SUB_RESOURCES = Collections.unmodifiableList(Arrays.asList(
                   "CDNNotifyConfiguration", "acl", "attname",  "cors", "customdomain", "delete",
      -            "deletebucket", "encryption", "length", "lifecycle", "location", "logging",
      +            "deletebucket", "encryption", "inventory", "length", "lifecycle", "location", "logging",
                   "metadata", "mirrorBackToSource", "modify", "name", "notification", "obscompresspolicy", 
                   "partNumber", "policy", "position", "quota","rename", "replication", "requestPayment", "response-cache-control", 
                   "response-content-disposition","response-content-encoding", "response-content-language", "response-content-type", 
      @@ -547,61 +521,42 @@ Host: bucketname.obs.region.example.com<
           }
       
           private String stringToSign(String httpMethod, Map<String, String[]> headers, Map<String, String> queries,
      -                                String bucketName, String objectName) throws Exception {
      -        String contentMd5 = "";
      -        String contentType = "";
      -        String date = "";
      -
      -        TreeMap<String, String> canonicalizedHeaders = new TreeMap<String, String>();
      -
      -        String key;
      -        List<String> temp = new ArrayList<String>();
      -        for (Map.Entry<String, String[]> entry : headers.entrySet()) {
      -            key = entry.getKey();
      -            if (key == null || entry.getValue() == null || entry.getValue().length == 0) {
      -                continue;
      -            }
      -
      -            key = key.trim().toLowerCase(Locale.ENGLISH);
      -            if (key.equals("content-md5")) {
      -                contentMd5 = entry.getValue()[0];
      -                continue;
      -            }
      -
      -            if (key.equals("content-type")) {
      -                contentType = entry.getValue()[0];
      -                continue;
      -            }
      -
      -            if (key.equals("date")) {
      -                date = entry.getValue()[0];
      -                continue;
      -            }
      -
      -            if (key.startsWith(OBS_PREFIX)) {
      -
      -                for (String value : entry.getValue()) {
      -                    if (value != null) {
      -                        temp.add(value.trim());
      -                    }
      -                }
      -
      -                canonicalizedHeaders.put(key, this.join(temp, ","));
      -                temp.clear();
      -            }
      -        }
      -
      -        if (canonicalizedHeaders.containsKey("x-obs-date")) {
      -            date = "";
      -        }
      -
      -
      -        // handle method/content-md5/content-type/date
      +                                String bucketName, String objectName, long expires) throws Exception { 
      +        String contentMd5 = ""; 
      +        String contentType = "";  
      +        TreeMap<String, String> canonicalizedHeaders = new TreeMap<String, String>(); 
      +        String key; 
      +        List<String> temp = new ArrayList<String>(); 
      +        for (Map.Entry<String, String[]> entry : headers.entrySet()) { 
      +            key = entry.getKey(); 
      +            if (key == null || entry.getValue() == null || entry.getValue().length == 0) { 
      +                continue; 
      +            } 
      +            key = key.trim().toLowerCase(Locale.ENGLISH); 
      +            if (key.equals("content-md5")) { 
      +                contentMd5 = entry.getValue()[0]; 
      +                continue; 
      +            } 
      +            if (key.equals("content-type")) { 
      +                contentType = entry.getValue()[0]; 
      +                continue; 
      +            } 
      +            if (key.startsWith(OBS_PREFIX)) { 
      +                for (String value : entry.getValue()) { 
      +                    if (value != null) { 
      +                        temp.add(value.trim()); 
      +                    } 
      +                } 
      +                canonicalizedHeaders.put(key, this.join(temp, ",")); 
      +                temp.clear(); 
      +            } 
      +        } 
      +        // handle method/content-md5/content-type
               StringBuilder stringToSign = new StringBuilder();
               stringToSign.append(httpMethod).append(SIGN_SEP)
                       .append(contentMd5).append(SIGN_SEP)
                       .append(contentType).append(SIGN_SEP)
      -                .append(date).append(SIGN_SEP);
      +                .append(expires).append(SIGN_SEP);
       
       
               // handle canonicalizedHeaders
      @@ -647,22 +602,17 @@ Host: bucketname.obs.region.example.com<
               return stringToSign.toString();
           }
       
      -    public String querySignature(String httpMethod, Map<String, String[]> headers, Map<String, String> queries,
      -                                 String bucketName, String objectName, long expires) throws Exception {
      -        if (!isBucketNameValid(bucketName)) {
      -            throw new IllegalArgumentException("the bucketName is illegal");
      -        }
      -        if (headers.containsKey("x-obs-date")) {
      -            headers.put("x-obs-date", new String[]{String.valueOf(expires)});
      -        } else {
      -            headers.put("date", new String[]{String.valueOf(expires)});
      -        }
      -        //1. stringToSign
      -        String stringToSign = this.stringToSign(httpMethod, headers, queries, bucketName, objectName);
      -
      -        //2. signature
      -        return this.encodeUrlString(this.hmacSha1(stringToSign));
      -    }
      +    public String querySignature(String httpMethod, Map<String, String[]> headers, Map<String, String> queries, 
      +                                  String bucketName, String objectName, long expires) throws Exception { 
      +         if (!isBucketNameValid(bucketName)) { 
      +             throw new IllegalArgumentException("the bucketName is illegal"); 
      +         } 
      +         //1. stringToSign 
      +         String stringToSign = this.stringToSign(httpMethod, headers, queries, bucketName, objectName, expires); 
      +  
      +         //2. signature 
      +         return this.encodeUrlString(this.hmacSha1(stringToSign)); 
      +     } 
       
           public String getURL(String endpoint, Map<String, String> queries,
                                String bucketName, String objectName, String signature, long expires) throws UnsupportedEncodingException {
      @@ -692,8 +642,11 @@ Host: bucketname.obs.region.example.com<
       
           public static void main(String[] args) throws Exception {
               SignDemo demo = new SignDemo();
      -        demo.ak = "<your-access-key-id>";
      -        demo.sk = "<your-secret-key-id>";
      +
      +        /* Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK and store them in the configuration file or environment variables.
      +        In this example, the AK and SK are stored in environment variables for identity authentication. Before running the code in this example, configure environment variables OTCCLOUD_SDK_AK and OTCCLOUD_SDK_SK. */
      +	demo.ak = System.getenv("OTCCLOUD_SDK_AK");
      +	demo.sk = System.getenv("OTCCLOUD_SDK_SK");
               String endpoint = "<your-endpoint>";
       
               String bucketName = "bucket-test";
      diff --git a/docs/obs/api-ref/obs_04_0012.html b/docs/obs/api-ref/obs_04_0012.html
      index 8514e57c..2028eb92 100644
      --- a/docs/obs/api-ref/obs_04_0012.html
      +++ b/docs/obs/api-ref/obs_04_0012.html
      @@ -1,12 +1,11 @@
       
       
       

      Authentication of Signature Carried in the Table Uploaded Through a Browser

      -

      OBS supports browser-based object upload using the POST method. Signatures of such requests are uploaded in tables. First, create a security policy and specify the requirements in the request, for example, Bucket name and object name prefix. Then, create a signature based on this policy. The request form to be signed must contain valid signature and policy. Finally, create a table to upload the object to the bucket.

      -

      The signature calculation process is as follows:

      -
      1. The policy content is encoded in UTF-8 format.
      2. Perform Base64 encoding on the result obtained from the preceding step.
      3. Use the SK to perform the HMAC-SHA1 signature calculation on the result obtained from step 2.
      4. Perform Base64 encoding on the result of step 3 to obtain the signature.
      +

      OBS supports browser-based object upload using the POST method. Signatures of such requests are uploaded in tables. First, create a security policy and specify the requirements in the request, for example, bucket name and object name prefix. Then, create a signature based on this policy. The request form to be signed must contain valid signature and policy. Finally, create a table to upload the object to the bucket.

      +

      The process of calculating a signature is as follows:

      +
      1. Encode the policy content in UTF-8.
      2. Encode the result of 1 in Base64.
      3. Use the SK to calculate the HMAC-SHA1 signature on the result of 2.
      4. Encode the result of 3 in Base64 to obtain the signature.
      StringToSign = Base64( UTF-8-Encoding-Of( policy ) )
       Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, StringToSign ) )
      -

      The content of the policy is as follows:
      { "expiration": "2017-12-31T12:00:00.000Z",
         "conditions": [
           {"x-obs-acl": "public-read" },
      @@ -21,69 +20,69 @@ Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, StringToSign ) )

      Conditions

      A mechanism used to verify the validity of a request. Conditions are used to define the content that must be contained in a request. In the example, the requested bucket name is book, the object name is prefixed with user/, and the ACL of the object is public read. All items in the form, excluding AccessKeyId, signature, file, policy, token, field names, and the prefix x-ignore-, must be included in the policy. The following table lists the items that should be contained in Conditions.

      -
      Table 1 Conditions contained in a policy

      Element

      +
      - - - - - - - - - - - - - - - - - - - - - @@ -92,33 +91,33 @@ Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, StringToSign ) )

      The table below describes how policy conditions can be matched.

      -
      Table 1 Conditions contained in a policy

      Element

      Description

      +

      Description

      x-obs-acl

      +

      x-obs-acl

      ACL in the request.

      +

      ACL in the request.

      Supports exact match and conditional match such as starts-with.

      content-length-range

      +

      content-length-range

      Maximum and minimum length of an object to be uploaded. The value can be a range.

      +

      Maximum and minimum length of an object to be uploaded. The value can be a range.

      Cache-Control, Content-Type, Content-Disposition, Content-Encoding, Expires

      +

      Cache-Control, Content-Type, Content-Disposition, Content-Encoding, Expires

      Headers specially for REST requests

      +

      Headers specially for REST requests

      Supports exact match and conditional match such as starts-with.

      key

      +

      key

      Name of an object to be uploaded.

      +

      Name of an object to be uploaded.

      Supports exact match and conditional match such as starts-with.

      bucket

      +

      bucket

      Name of the requested bucket.

      +

      Name of the requested bucket.

      Supports exact match.

      success_action_redirect

      +

      success_action_redirect

      Redirection address after the upload is successful. For details, see Uploading Objects - POST.

      +

      Redirection address after the upload is successful. For details, see Uploading an Object - POST.

      Supports exact match and conditional match such as starts-with.

      success_action_status

      +

      success_action_status

      If success_action_redirect is not specified, the status code is returned to the client when the upload is successful. For details, see Uploading Objects - POST.

      +

      If success_action_redirect is not specified, the status code is returned to the client when the upload is successful. For details, see Uploading an Object - POST.

      Supports exact match.

      x-obs-meta-*

      +

      x-obs-meta-*

      User-defined metadata.

      +

      User-defined metadata.

      Keywords in an element cannot contain non-ASCII or unrecognizable characters. If non-ASCII or unrecognizable characters are necessary, they should be encoded and decoded on the client side. Either URL encoding or Base64 encoding is acceptable, but the server does not perform decoding.

      Supports exact match and conditional match such as starts-with.

      x-obs-*

      +

      x-obs-*

      Other header fields with prefix x-obs-.

      +

      Other header fields with prefix x-obs-.

      Supports exact match and conditional match such as starts-with.

      x-obs-security-token

      +

      x-obs-security-token

      Field name in the request header.

      +

      Field name in the request header.

      Mandatory field for the temporary AK/SK and security token authentication.

      Table 2 Policy condition matching methods

      Matching Method

      +
      - - - - - - - - - @@ -129,55 +128,55 @@ Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, StringToSign ) )

      The table below lists the characters that must be escaped in a policy.

      -
      Table 2 Policy condition matching methods

      Matching Method

      Description

      +

      Description

      Exact Matches

      +

      Exact Matches

      Exact match by default. The value in the POST table must be the same as that in the policy. For example, if object ACL is set to public-read when the object is uploaded, the value of the x-obs-acl element in the table is public-read. Therefore, the conditions in the policy can be set to

      +

      Exact match by default. The value in the POST table must be the same as that in the policy. For example, if object ACL is set to public-read when the object is uploaded, the value of the x-obs-acl element in the table is public-read. Therefore, the conditions in the policy can be set to

      {"x-obs-acl": "public-read"} or ["eq", "$x-obs-acl", "public-read"], which are equivalent.

      Starts With

      +

      Starts With

      If this condition is used, the value set in the POST table must start with a fixed character string. For example, if the name of uploaded objects must be prefixed with user/, the value of the key element in the table can be user/test1, user/test2, and so on. Therefore, conditions in the policy can be set to:

      +

      If this condition is used, the value set in the POST table must start with a fixed character string. For example, if the name of uploaded objects must be prefixed with user/, the value of the key element in the table can be user/test1, user/test2, and so on. Therefore, conditions in the policy can be set to:

      ["starts-with", "$key", "user/"]

      Matching Any Content

      +

      Matching Any Content

      The corresponding element in the POST table can be any value. For example, if the redirection address upon request success can be any address, the value of the success_action_redirect element in the table can be any value. Therefore, conditions in the policy can be set to:

      +

      The corresponding element in the POST table can be any value. For example, if the redirection address upon request success can be any address, the value of the success_action_redirect element in the table can be any value. Therefore, conditions in the policy can be set to:

      ["starts-with", "$success_action_redirect", ""]

      Specifying Ranges

      +

      Specifying Ranges

      The content length of the file element in the POST table can be a specified range and is used only to limit the object size. For example, if the size of the uploaded object is between 1 MB to 10 MB, the content length of the file element in the table can be from 1048576 to 10485760. Therefore, conditions in the policy can be set to (the value does not contain quotation marks)

      +

      The content length of the file element in the POST table can be a specified range and is used only to limit the object size. For example, if the size of the uploaded object is between 1 MB to 10 MB, the content length of the file element in the table can be from 1048576 to 10485760. Therefore, conditions in the policy can be set to (the value does not contain quotation marks)

      ["content-length-range", 1048576, 10485760]

      Table 3 Characters that must be escaped in a policy

      Character After Escape

      +
      - - - - - - - - - - - - - - - - - - - @@ -187,13 +186,13 @@ Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, StringToSign ) )

      Request and Policy Examples

      The following tables provide examples of requests and policies.

      Example 1: Upload the testfile.txt object to bucket examplebucket and set the object ACL to public-read.

      -
      Table 3 Characters that must be escaped in a policy

      Character After Escape

      Real Character

      +

      Real Character

      \\

      +

      \\

      Backslash (\)

      +

      Backslash (\)

      \$

      +

      \$

      Dollar symbol ($)

      +

      Dollar symbol ($)

      \b

      +

      \b

      Backspace

      +

      Backspace

      \f

      +

      \f

      Page up and down

      +

      Page up and down

      \n

      +

      \n

      Line breaks

      +

      Newline characters

      \r

      +

      \r

      Enter

      +

      Enter

      \t

      +

      \t

      Horizontal table

      +

      Horizontal table

      \v

      +

      \v

      Vertical table

      +

      Vertical table

      \uxxxx

      +

      \uxxxx

      All Unicode characters

      +

      All Unicode characters

      Request

      +
      - - -

      Request

      policy

      +

      Policy

      POST / HTTP/1.1

      +

      POST / HTTP/1.1

      Host: examplebucket.obs.region.example.com

      Content-Type: multipart/form-data; boundary=7e32233530b26

      Content-Length: 1250

      @@ -233,7 +232,7 @@ Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, StringToSign ) )

      Upload

      --7e32233530b26--

      {

      +

      {

      "expiration": "2019-07-01T12:00:00.000Z",

      "conditions": [

      {"bucket": "examplebucket" },

      @@ -249,13 +248,13 @@ Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, StringToSign ) )

      Example 2: Upload the file/obj1 object to bucket examplebucket and configure the four custom metadata items of the object.

      -

      Request

      +
      - - - @@ -282,139 +282,139 @@ Authorization: authorization - diff --git a/docs/obs/api-ref/obs_04_0023.html b/docs/obs/api-ref/obs_04_0023.html index 93b930da..53328eb0 100644 --- a/docs/obs/api-ref/obs_04_0023.html +++ b/docs/obs/api-ref/obs_04_0023.html @@ -59,67 +59,67 @@ Date: date

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      -

      In addition to the common response headers, the message headers listed in Table 2 may be used.

      +

      In addition to the common response headers, the headers listed in Table 2 may be used.

      -

      Request

      policy

      +

      Policy

      POST / HTTP/1.1

      +

      POST / HTTP/1.1

      Host: examplebucket.obs.region.example.com

      Content-Type: multipart/form-data; boundary=7e329d630b26

      Content-Length: 1597

      @@ -303,7 +302,7 @@ Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, StringToSign ) )

      Upload

      --7e3542930b26--

      {

      +

      {

      "expiration": "2019-07-01T12:00:00.000Z",

      "conditions": [

      {"bucket": "examplebucket" },

      diff --git a/docs/obs/api-ref/obs_04_0015.html b/docs/obs/api-ref/obs_04_0015.html index c77ad3ee..5e5db41f 100644 --- a/docs/obs/api-ref/obs_04_0015.html +++ b/docs/obs/api-ref/obs_04_0015.html @@ -102,7 +102,8 @@ 93 94 95 -96
      package com.obsclient;
      +96
      +97
      package com.obsclient;
       
       import java.io.*;
       
      @@ -114,9 +115,10 @@
       import org.apache.http.impl.client.HttpClients;
       
       public class TestMain {
      -
      -    public static String accessKey = "UDSIAMSTUBTEST000012"; //The value of this parameter is the AK obtained.
      -     public static String securityKey = "Udsiamstubtest000000UDSIAMSTUBTEST000012";  //The value of this parameter is the SK obtained.
      +    /* Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK and store them in the configuration file or environment variables.
      +    In this example, the AK and SK are stored in environment variables for identity authentication. Before running the code in this example, configure environment variables OTCCLOUD_SDK_AK and OTCCLOUD_SDK_SK. */
      +    public static String accessKey = System.getenv("OTCCLOUD_SDK_AK"); //The value is the AK obtained.
      +    public static String securityKey = System.getenv("OTCCLOUD_SDK_SK");  //The value is the SK obtained.
           public static String region = "a1"; // The value is the region where the planned bucket resides.
           public static String createBucketTemplate =
                   "<CreateBucketConfiguration " +
      diff --git a/docs/obs/api-ref/obs_04_0016.html b/docs/obs/api-ref/obs_04_0016.html
      index c74f9618..1c222581 100644
      --- a/docs/obs/api-ref/obs_04_0016.html
      +++ b/docs/obs/api-ref/obs_04_0016.html
      @@ -101,7 +101,9 @@
       92
       93
       94
      -95
      package com.obsclient;
      +95
      +96
      +97
      package com.obsclient;
       
       import java.io.*;
       import java.util.ArrayList;
      @@ -124,8 +126,10 @@
       
       public class TestMain {
       
      -    public static String accessKey = "UDSIAMSTUBTEST000012"; //The value of this parameter is the AK obtained.
      -     public static String securityKey = "Udsiamstubtest000000UDSIAMSTUBTEST000012";  //The value of this parameter is the SK obtained.
      +    /* Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK and store them in the configuration file or environment variables.
      +    In this example, the AK and SK are stored in environment variables for identity authentication. Before running the code in this example, configure environment variables OTCCLOUD_SDK_AK and OTCCLOUD_SDK_SK. */
      +    public static String accessKey = System.getenv("OTCCLOUD_SDK_AK"); //The value is the AK obtained.
      +    public static String securityKey = System.getenv("OTCCLOUD_SDK_SK");  //The value is the SK obtained.
       
           public static void main(String[] str) {
       
      diff --git a/docs/obs/api-ref/obs_04_0017.html b/docs/obs/api-ref/obs_04_0017.html
      index 420903b9..e094a568 100644
      --- a/docs/obs/api-ref/obs_04_0017.html
      +++ b/docs/obs/api-ref/obs_04_0017.html
      @@ -110,7 +110,9 @@
       101
       102
       103
      -104
      package com.obsclient;
      +104
      +105
      +106
      package com.obsclient;
       
       import java.io.*;
       import java.util.ArrayList;
      @@ -133,8 +135,10 @@
       
       public class TestMain {
       
      -    public static String accessKey = "UDSIAMSTUBTEST000012"; //The value of this parameter is the AK obtained.
      -     public static String securityKey = "Udsiamstubtest000000UDSIAMSTUBTEST000012";  //The value of this parameter is the SK obtained.
      +    /* Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK and store them in the configuration file or environment variables.
      +    In this example, the AK and SK are stored in environment variables for identity authentication. Before running the code in this example, configure environment variables OTCCLOUD_SDK_AK and OTCCLOUD_SDK_SK. */
      +    public static String accessKey = System.getenv("OTCCLOUD_SDK_AK"); //The value is the AK obtained.
      +    public static String securityKey = System.getenv("OTCCLOUD_SDK_SK");  //The value is the SK obtained.
       
           public static void main(String[] str) {
       		
      diff --git a/docs/obs/api-ref/obs_04_0021.html b/docs/obs/api-ref/obs_04_0021.html
      index 2c958da2..9d151251 100644
      --- a/docs/obs/api-ref/obs_04_0021.html
      +++ b/docs/obs/api-ref/obs_04_0021.html
      @@ -2,12 +2,12 @@
       
       

      Creating a Bucket

      Functions

      This operation is used to create a bucket with a specified name.

      -
      • By default, a user can have a maximum of 100 buckets.
      • The name of a deleted bucket can be reused for a bucket or a parallel file system at least 30 minutes after the deletion.
      • You can enable WORM when you create a bucket, but you cannot enable WORM for an existing bucket. In a bucket with WORM enabled, you can further configure retention policies for objects you upload to this bucket. For more information, see the WORM sections. Once enabled, WORM cannot be disabled for a bucket. When you create a bucket with WORM enabled, OBS automatically enables versioning for the bucket and the versioning cannot be suspended for that bucket. When you create a parallel file system, you cannot enable WORM for it.
      +
      • By default, a user can have a maximum of 100 buckets.
      • The name of a deleted bucket can be reused for a bucket or a parallel file system at least 30 minutes after the deletion.
      • You can enable WORM when you create a bucket, but you cannot enable WORM for an existing bucket. In a bucket with WORM enabled, you can further configure retention policies for objects you upload to this bucket. For more information, see Configuring a Default WORM Policy for a Bucket. Once enabled, WORM cannot be disabled for a bucket. When you create a bucket with WORM enabled, OBS automatically enables versioning for the bucket and the versioning cannot be suspended for that bucket. When you create a parallel file system, you cannot enable WORM for it.

      A bucket name must be unique in OBS. If a user creates a bucket with the same name as that of an existing bucket under the same account and in the same region, a 200 code (indicating success) is returned. In scenarios other than the preceding one, the request for creating a bucket with the same name as that of an existing one will receive the 409 code (indicating that a namesake bucket already exists). To set an access control policy for the bucket to be created, you can add the x-obs-acl parameter to request headers.

      Storage Class

      You can create buckets with different storage classes. The x-obs-storage-class header in a bucket creation request specifies the bucket's storage class. If you do not specify a storage class when you upload an object to the bucket, the object inherits the storage class of the bucket. The storage class options are as follows: STANDARD (Standard), WARM (Warm), COLD (Cold). If the x-obs-storage-class header is not in the request, a Standard bucket will be created.

      -

      If the storage class of an object is not specified when it is uploaded to a bucket (see Uploading Objects - PUT), the object will be stored in the default storage class of the bucket.

      +

      If the storage class of an object is not specified when it is uploaded to a bucket (see Uploading an Object - PUT), the object will be stored in the default storage class of the bucket.

      • OBS Standard features low access latency and high throughput. It is most suitable for storing frequently accessed (multiple times per month) hot files. Potential application scenarios include big data, mobile applications, trending videos, and social media images.
      • OBS Warm storage class is suitable for storing data that is infrequently accessed (less than 12 times a year) yet has quick response requirements. Potential application scenarios include file synchronization or sharing and enterprise backup. It provides the same durability, access latency, and throughput as the Standard storage class but at a lower price. However, the Warm storage class has lower availability than the Standard one.
      • OBS Cold storage class is applicable to archiving rarely-accessed (averagely once a year) data. The application scenarios include data archiving and long-term data retention for backup. The Cold storage class is secure, durable, and inexpensive, which can replace tape libraries. To keep cost low, it may take hours to restore data from the Cold storage class.

      Request Syntax

      1
      diff --git a/docs/obs/api-ref/obs_04_0022.html b/docs/obs/api-ref/obs_04_0022.html
      index dc232aa5..c391a898 100644
      --- a/docs/obs/api-ref/obs_04_0022.html
      +++ b/docs/obs/api-ref/obs_04_0022.html
      @@ -96,7 +96,7 @@ Authorization: authorization
       
      -

      Request Headers

      This request uses common request headers. Table 3 lists the common request headers.

      +

      Request Headers

      This request uses common request headers. For details, see Table 3.

      Request Elements

      This request contains no elements.

      @@ -139,119 +139,119 @@ Authorization: authorization

      Object metadata

      Type: XML

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      CommonPrefixes

      Group information. If you specify a delimiter in the request, the response contains group information in CommonPrefixes.

      Type: XML

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      Delimiter

      The delimiter parameter specified in a request

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      ETag

      Base64-encoded 128-bit MD5 digest of an object. ETag is the unique identifier of the object content. It can be used to determine whether the object content is changed. For example, if the ETag value is A when an object is uploaded, but this value has changed to B when the object is downloaded, it indicates that the object content has been changed. The ETag value is a hash of the object. The ETag reflects changes to the object content, rather than the object metadata. An uploaded object or copied object has a unique ETag after being encrypted using MD5. (If the object is encrypted on the server side, the ETag value is not the MD5 digest of the object, but the unique identifier calculated through server-side encryption.)

      Type: string

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      Type

      Object type. This parameter is returned when the object type is not Normal.

      Type: string

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      ID

      Domain ID of the object owner

      Type: string

      -

      Ancestor: ListBucketResult.Contents.Owner

      +

      Parent: ListBucketResult.Contents.Owner

      IsTruncated

      Determines whether the returned list of objects is truncated. The value true indicates that the list was truncated and false indicates that the list was not truncated.

      Type: boolean

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      Key

      Object name

      Type: string

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      LastModified

      Time (UTC) when an object was last modified

      Type: date

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      Marker

      Marker for the position from which objects in a bucket will be listed

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      NextMarker

      A marker for the last returned object in the list. NextMarker is returned when not all the objects are listed. You can set the Marker value to list the remaining objects in follow-up requests.

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      MaxKeys

      Maximum number of objects returned

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      Name

      Name of the requested bucket

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      Owner

      User information, including the domain ID and name of the object owner

      Type: XML

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      DisplayName

      Name of the object owner

      Type: string

      -

      Ancestor: ListBucketResult.Contents.Owner

      +

      Parent: ListBucketResult.Contents.Owner

      Prefix

      Prefix of an object name. Only objects whose names have this prefix are listed.

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      Size

      Object size in bytes

      Type: string

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      StorageClass

      @@ -259,7 +259,7 @@ Authorization: authorization

      Storage class of an object

      Type: string

      Value options: STANDARD, WARM, COLD

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      Bucket name

      Type: string

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      Prefix

      Prefix of an object name. Only objects whose names have this prefix are listed. Type: string

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      KeyMarker

      Marker for the object key from which objects will be listed

      Type: string

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      VersionIdMarker

      Object version ID to start with when objects are listed

      Type: string

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      NextKeyMarker

      Key marker for the last returned object in the list. NextKeyMarker is returned when not all the objects are listed. You can set the KeyMarker value to list the remaining objects in follow-up requests.

      Type: string

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      NextVersionIdMarker

      Version ID marker for the last returned object in the list. NextVersionIdMarker is returned when not all the objects are listed. You can set the VersionIdMarker value to list the remaining objects in follow-up requests.

      Type: string

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      MaxKeys

      Maximum number of objects returned

      Type: string

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      IsTruncated

      Indicates whether the returned list of objects is truncated. The value true indicates that the list was truncated and false indicates that the list was not truncated.

      Type: boolean

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      Version

      Container of version information

      Type: container

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      DeleteMarker

      Container for objects with deletion markers

      +

      Container for objects with delete markers

      Type: container

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      Key

      Object name

      Type: string

      -

      Ancestor: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

      +

      Parent: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

      VersionId

      Object version ID

      Type: string

      -

      Ancestor: ListVersionsResult, Version | ListVersionsResult, DeleteMarker

      +

      Parent: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

      IsLatest

      Whether the object is the latest version. If the parameter value is true, the object is the latest version.

      Type: boolean

      -

      Ancestor: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

      +

      Parent: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

      LastModified

      Time (UTC) when an object was last modified

      Type: date

      -

      Ancestor: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

      +

      Parent: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

      ETag

      Base64-encoded 128-bit MD5 digest of an object. ETag is the unique identifier of the object content. It can be used to determine whether the object content is changed. The actual ETag is the hash value of the object. For example, if the ETag value is A when an object is uploaded, but this value has changed to B when the object is downloaded, it indicates that the object content has been changed. The ETag reflects changes to the object content, rather than the object metadata. An uploaded object or copied object has a unique ETag after being encrypted using MD5.

      Type: string

      -

      Ancestor: ListVersionsResult.Version

      +

      Parent: ListVersionsResult.Version

      Type

      Object type. This parameter is returned when the object type is not Normal.

      Type: string

      -

      Ancestor: ListVersionsResult.Version

      +

      Parent: ListVersionsResult.Version

      Size

      Object size in bytes

      Type: string

      -

      Ancestor: ListVersionsResult.Version

      +

      Parent: ListVersionsResult.Version

      Owner

      User information, including the domain ID and name of the object owner

      Type: container

      -

      Ancestor: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

      +

      Parent: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

      ID

      Domain ID of the object owner

      Type: string

      -

      Ancestor: ListVersionsResult.Version.Owner | ListVersionsResult.DeleteMarker.Owner

      +

      Parent: ListVersionsResult.Version.Owner | ListVersionsResult.DeleteMarker.Owner

      DisplayName

      Name of the object owner

      Type: string

      -

      Ancestor: ListVersionsResult.Version.Owner | ListVersionsResult.DeleteMarker.Owner

      +

      Parent: ListVersionsResult.Version.Owner | ListVersionsResult.DeleteMarker.Owner

      StorageClass

      @@ -422,21 +422,21 @@ Authorization: authorization

      Storage class of an object

      Type: string

      Value options: STANDARD, WARM, COLD

      -

      Ancestor: ListVersionsResult.Version

      +

      Parent: ListVersionsResult.Version

      CommonPrefixes

      Group information. If you specify a delimiter in the request, the response contains group information in CommonPrefixes.

      Type: container

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      Prefix

      Indicates a different prefix in the group information in CommonPrefixes.

      Type: string

      -

      Ancestor: ListVersionsResult.CommonPrefixes

      +

      Parent: ListVersionsResult.CommonPrefixes

      Table 2 Additional response headers

      Header

      +
      - - - - - - - - - - - - - - - - - - - diff --git a/docs/obs/api-ref/obs_04_0024.html b/docs/obs/api-ref/obs_04_0024.html index ae9f8e4d..9a60d9a2 100644 --- a/docs/obs/api-ref/obs_04_0024.html +++ b/docs/obs/api-ref/obs_04_0024.html @@ -49,7 +49,7 @@ Content-Length: length - diff --git a/docs/obs/api-ref/obs_04_0025.html b/docs/obs/api-ref/obs_04_0025.html index 38711376..ea40dd36 100644 --- a/docs/obs/api-ref/obs_04_0025.html +++ b/docs/obs/api-ref/obs_04_0025.html @@ -16,7 +16,7 @@ Authorization: authorization -

      Request Parameters

      This request contains no message parameters.

      +

      Request Parameters

      This request contains no parameters.

      Request Headers

      This request uses common request headers. For details, see Table 3.

      diff --git a/docs/obs/api-ref/obs_04_0026.html b/docs/obs/api-ref/obs_04_0026.html index 2180ba56..beb99b9e 100644 --- a/docs/obs/api-ref/obs_04_0026.html +++ b/docs/obs/api-ref/obs_04_0026.html @@ -54,6 +54,14 @@ + + + +

      Response Elements

      This response contains no elements.

      -

      Error Responses

      No special error responses are returned. For details, see Table 2.

      +

      Error Responses

      No special error responses are returned. For details about error responses, see Table 2.

      Sample Request

      Table 2 Additional response headers

      Header

      Description

      +

      Description

      x-obs-bucket-location

      +

      x-obs-bucket-location

      The region where the bucket resides.

      +

      The region where the bucket resides.

      Type: string

      x-obs-storage-class

      +

      x-obs-storage-class

      Default storage class of the bucket. The options are as follows: STANDARD (Standard), WARM (Warm), COLD (Cold).

      +

      Default storage class of the bucket. The options are as follows: STANDARD (Standard), WARM (Warm), COLD (Cold).

      Type: string

      x-obs-version

      +

      x-obs-version

      OBS version of the bucket.

      +

      OBS version of the bucket.

      Type: string

      x-obs-fs-file-interface

      +

      x-obs-fs-file-interface

      Indicates whether the bucket is a parallel file system. The value can be Enabled (parallel file system).

      +

      Indicates whether the bucket is a parallel file system. The value can be Enabled (parallel file system).

      If this header field is not carried, the bucket is not a parallel file system.

      Type: string

      Access-Control-Allow-Origin

      +

      Access-Control-Allow-Origin

      Indicates that the origin is included in the response if the origin in the request meets the CORS configuration requirements when CORS is configured for buckets.

      +

      Indicates that the origin is included in the response if the origin in the request meets the CORS configuration requirements when CORS is configured for buckets.

      Type: string

      Access-Control-Allow-Headers

      +

      Access-Control-Allow-Headers

      Indicates that the headers are included in the response if headers in the request meet the CORS configuration requirements when CORS is configured for buckets.

      +

      Indicates that the headers are included in the response if headers in the request meet the CORS configuration requirements when CORS is configured for buckets.

      Type: string

      Access-Control-Max-Age

      +

      Access-Control-Max-Age

      Value of MaxAgeSeconds in the CORS configuration of the server when CORS is configured for buckets.

      +

      Value of MaxAgeSeconds in the CORS configuration of the server when CORS is configured for buckets.

      Type: integer

      Access-Control-Allow-Methods

      +

      Access-Control-Allow-Methods

      Indicates that methods in the rule are included in the response if Access-Control-Request-Method in the request meets the CORS configuration requirements when CORS is configured for buckets.

      +

      Indicates that methods in the rule are included in the response if Access-Control-Request-Method in the request meets the CORS configuration requirements when CORS is configured for buckets.

      Type: string

      Value options: GET, PUT, HEAD, POST, DELETE

      Access-Control-Expose-Headers

      +

      Access-Control-Expose-Headers

      Value of ExposeHeader in the CORS configuration of a server when CORS is configured for buckets.

      +

      Value of ExposeHeader in the CORS configuration of a server when CORS is configured for buckets.

      Type: string

      Location

      Indicates the region where the bucket resides.

      +

      Indicates the region where the bucket resides.

      Type: string

       1
        2
      diff --git a/docs/obs/api-ref/obs_04_0032.html b/docs/obs/api-ref/obs_04_0032.html
      index d3830caa..c535c6b9 100644
      --- a/docs/obs/api-ref/obs_04_0032.html
      +++ b/docs/obs/api-ref/obs_04_0032.html
      @@ -20,6 +20,8 @@
       }

      To disable the bucket logging function, upload a logging file with an empty BucketLoggingStatus tag.

      By default, a bucket whose storage class is Warm or Cold cannot be used for storing log files. Stored log files occupy storage space in a bucket. Therefore, users are charged for the logging service based on the pricing for data storage.

      +

      If the target bucket has KMS encryption enabled, grant the agency access to KMS.

      +

      Request Syntax

      diff --git a/docs/obs/api-ref/obs_04_0062.html b/docs/obs/api-ref/obs_04_0062.html index 45b7f8aa..cb6c7a2b 100644 --- a/docs/obs/api-ref/obs_04_0062.html +++ b/docs/obs/api-ref/obs_04_0062.html @@ -58,8 +58,8 @@ Content-Length: length @@ -68,8 +68,8 @@ Content-Length: length @@ -78,8 +78,8 @@ Content-Length: length @@ -89,7 +89,7 @@ Content-Length: length @@ -102,7 +102,7 @@ Content-Length: length
      1. regionID:domainID:key/key_id
      2. key_id

      In the preceding formats:

      • regionID indicates the ID of the region where the key belongs.
      • domainID indicates the ID of the domain to which the key belongs. For details, see Obtaining a Domain ID and a User ID.
      • key_id indicates the ID of the key created in KMS.
      -

      Ancestor: ApplyServerSideEncryptionByDefault

      +

      Parent: ApplyServerSideEncryptionByDefault

      @@ -113,7 +113,7 @@ Content-Length: length

      Type: string

      Value options:

      1. Project ID that matches KMSMasterKeyID.
      2. If KMSMasterKeyID is not specified, do not set the project ID.
      -

      Ancestor: ApplyServerSideEncryptionByDefault

      +

      Parent: ApplyServerSideEncryptionByDefault

      NOTE:

      When a custom key in a non-default IAM project is used to encrypt objects, only the key owner can upload or download the encrypted objects.

      diff --git a/docs/obs/api-ref/obs_04_0063.html b/docs/obs/api-ref/obs_04_0063.html index c58a71ee..c199c1ba 100644 --- a/docs/obs/api-ref/obs_04_0063.html +++ b/docs/obs/api-ref/obs_04_0063.html @@ -76,24 +76,24 @@ Date: date diff --git a/docs/obs/api-ref/obs_04_0068.html b/docs/obs/api-ref/obs_04_0068.html index 3ae21007..028e8243 100644 --- a/docs/obs/api-ref/obs_04_0068.html +++ b/docs/obs/api-ref/obs_04_0068.html @@ -43,7 +43,7 @@ Content-Length: length @@ -52,7 +52,7 @@ Content-Length: length diff --git a/docs/obs/api-ref/obs_04_0069.html b/docs/obs/api-ref/obs_04_0069.html index eea72c48..0d38fe3a 100644 --- a/docs/obs/api-ref/obs_04_0069.html +++ b/docs/obs/api-ref/obs_04_0069.html @@ -63,7 +63,7 @@ Content-Length: length diff --git a/docs/obs/api-ref/obs_04_0071.html b/docs/obs/api-ref/obs_04_0071.html index b50b166c..4f473aec 100644 --- a/docs/obs/api-ref/obs_04_0071.html +++ b/docs/obs/api-ref/obs_04_0071.html @@ -32,7 +32,7 @@ Authorization: authorization -

      Request Parameters

      This request contains no message parameters.

      +

      Request Parameters

      This request contains no parameters.

      Request Headers

      This request uses common headers. For details, see Table 3.

      @@ -50,7 +50,7 @@ Authorization: authorization
      @@ -59,7 +59,7 @@ Authorization: authorization @@ -68,7 +68,7 @@ Authorization: authorization @@ -77,7 +77,7 @@ Authorization: authorization @@ -99,7 +99,7 @@ Authorization: authorization @@ -108,7 +108,7 @@ Authorization: authorization @@ -117,7 +117,7 @@ Authorization: authorization @@ -126,7 +126,7 @@ Authorization: authorization @@ -135,7 +135,7 @@ Authorization: authorization @@ -154,7 +154,7 @@ Authorization: authorization @@ -175,7 +175,7 @@ Authorization: authorization

      Example:

      • To redirect the request for object ExamplePage.html, the KeyPrefixEquals is set to ExamplePage.html.

      Type: string

      -

      Ancestor: Condition

      +

      Parent: Condition

      Condition: Required when the ancestor element Condition is specified and sibling HttpErrorCodeReturnedEquals is not specified. If two conditions are specified, both conditions must be true for the Redirect to be applied.

      @@ -206,7 +206,7 @@ Authorization: authorization @@ -217,7 +217,7 @@ Authorization: authorization - -
       1
        2
      @@ -175,7 +177,7 @@ Authorization: signatureValue
       
      • bucket-log is the target prefix specified by the user.
      • 2015-06-29-12-22-07 indicates the time when the log is generated.
      • N7MXLAF1BDG7MPDV is a string automatically generated by OBS

      Format of bucket access logs

      The following shows an access log delivered to the target bucket:

      -
      @@ -150,7 +150,7 @@ Content-MD5: MD5 @@ -160,7 +160,7 @@ Content-MD5: MD5 @@ -169,8 +169,8 @@ Content-MD5: MD5 @@ -179,8 +179,8 @@ Content-MD5: MD5 @@ -189,7 +189,7 @@ Content-MD5: MD5 @@ -198,8 +198,8 @@ Content-MD5: MD5 @@ -208,7 +208,7 @@ Content-MD5: MD5 @@ -217,18 +217,18 @@ Content-MD5: MD5 - @@ -237,10 +237,8 @@ Content-MD5: MD5 @@ -249,7 +247,7 @@ Content-MD5: MD5 @@ -258,7 +256,7 @@ Content-MD5: MD5 @@ -269,7 +267,7 @@ Content-MD5: MD5 @@ -278,7 +276,7 @@ Content-MD5: MD5 diff --git a/docs/obs/api-ref/obs_04_0037.html b/docs/obs/api-ref/obs_04_0037.html index 9e688c0f..41cfed56 100644 --- a/docs/obs/api-ref/obs_04_0037.html +++ b/docs/obs/api-ref/obs_04_0037.html @@ -6,9 +6,9 @@

      Once WORM is enabled for a bucket, OBS automatically enables versioning for the bucket and the versioning cannot be suspended for that bucket.

      You can perform this operation to enable or suspend versioning for a bucket.

      After versioning is enabled for a bucket:

      -
      • OBS creates a unique version ID for each uploaded object. Namesake objects are not overwritten and are distinguished by their own version IDs.
      • You can download objects by specifying version IDs. By default, the latest object is downloaded if the version ID is not specified.
      • Objects can be deleted by version ID. If an object is deleted with no version ID specified, the object is only attached with a deletion marker and a unique version ID but is not physically deleted.
      • The latest objects in a bucket are returned by default after a GET Object request. You can also send a request to obtain a bucket's objects with all version IDs.
      • Except deletion markers and object metadata, storage space occupied by objects with all version IDs is charged.
      +
      • OBS creates a unique version ID for each uploaded object. Namesake objects are not overwritten and are distinguished by their own version IDs.
      • You can download objects by specifying version IDs. By default, the latest object is downloaded if the version ID is not specified.
      • You can specify a version ID to permanently delete a specific object. If an object is deleted with no version ID specified, only a delete marker with a unique version ID is generated, but the object is not physically deleted.
      • The latest objects in a bucket are returned by default after a GET Object request. You can also send a request to obtain a bucket's objects with all version IDs.
      • Except delete markers, storage space occupied by objects with all version IDs, excluding object metadata, is billed.

      After versioning is suspended for a bucket:

      -
      • Existing objects with version IDs are not affected.
      • The system creates version ID null to an uploaded object and the object will be overwritten after a namesake one is uploaded.
      • You can download objects by specifying version IDs. By default, the latest object is downloaded if the version ID is not specified.
      • Objects can be deleted by version ID. If an object is deleted with no version ID specified, the object is attached with a deletion marker whose version ID is null. The object with version ID null is physically deleted.
      • Except deletion markers and object metadata, storage space occupied by objects with all version IDs is charged.
      +
      • Existing objects with version IDs are not affected.
      • The system creates version ID null to an uploaded object and the object will be overwritten after a namesake one is uploaded.
      • You can download objects by specifying version IDs. By default, the latest object is downloaded if the version ID is not specified.
      • You can specify a version ID to delete a specific object. If an object is deleted with no version ID specified, OBS creates a delete marker with a version ID of null and deletes the object whose version ID is null.
      • Except delete markers, storage space occupied by objects with all version IDs, excluding object metadata, is billed.

      Only the bucket owner can set versioning for the bucket.

      Request Syntax

      1
      787f2f92b20943998a4fe2ab75eb09b8 bucket [13/Aug/2015:01:43:42 +0000] xx.xx.xx.xx 787f2f92b20943998a4fe2ab75eb09b8 281599BACAD9376ECE141B842B94535B  REST.GET.BUCKET.LOCATION - "GET /bucket?location HTTP/1.1" 200 - 211 - 6 6 "-"  "HttpClient" - -
      +
      1
      787f2f92b20943998a4fe2ab75eb09b8 bucket [13/Aug/2015:01:43:42 +0000] xx.xx.xx.xx 787f2f92b20943998a4fe2ab75eb09b8 281599BACAD9376ECE141B842B94535B  REST.GET.BUCKET.LOCATION - "GET /bucket?location HTTP/1.1" 200 - 211 - 6 6 "-"  "HttpClient" - - 
       
      @@ -183,167 +185,167 @@ Authorization: signatureValue
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/obs/api-ref/obs_04_0034.html b/docs/obs/api-ref/obs_04_0034.html index 95a53743..10006555 100644 --- a/docs/obs/api-ref/obs_04_0034.html +++ b/docs/obs/api-ref/obs_04_0034.html @@ -92,7 +92,7 @@ Content-MD5: MD5 -

      Request Parameters

      This request contains no message parameters.

      +

      Request Parameters

      This request contains no parameters.

      Request Headers

      Table 1 lists the request header.

      @@ -117,7 +117,7 @@ Content-MD5: MD5
      Table 2 Format of bucket access logs

      Parameter

      Example

      +

      Example

      Description

      +

      Description

      BucketOwner

      787f2f92b20943998a4fe2ab75eb09b8

      +

      787f2f92b20943998a4fe2ab75eb09b8

      ID of the bucket owner

      +

      ID of the bucket owner

      Bucket

      bucket

      +

      bucket

      Bucket name

      +

      Bucket name

      Time

      [13/Aug/2015:01:43:42 +0000]

      +

      [13/Aug/2015:14:43:42 +0000]

      Request timestamp

      +

      Request timestamp in the [dd/MMM/yyyy:HH:mm:ss Z] format

      Remote IP

      xx.xx.xx.xx

      +

      xx.xx.xx.xx

      Request IP address

      +

      Request IP address

      Requester

      787f2f92b20943998a4fe2ab75eb09b8

      +

      787f2f92b20943998a4fe2ab75eb09b8

      ID of the requester

      +

      ID of the requester

      • When an account initiates a request, this parameter value is the account ID. When an IAM user initiates a request, this parameter value is the ID of the account where the IAM user belongs.
      • When an anonymous user initiates a request, this parameter value is Anonymous.

      RequestID

      281599BACAD9376ECE141B842B94535B

      +

      281599BACAD9376ECE141B842B94535B

      Request ID

      +

      Request ID

      Operation

      REST.GET.BUCKET.LOCATION

      +

      REST.GET.BUCKET.LOCATION

      Operation

      +

      Operation

      Key

      -

      +

      -

      Object name

      +

      Object name

      Request-URI

      GET /bucket?location HTTP/1.1

      +

      GET /bucket?location HTTP/1.1

      Request URI

      +

      Request URI

      HTTPStatus

      200

      +

      200

      Response code

      +

      Response code

      ErrorCode

      -

      +

      -

      Error code

      +

      Error code

      BytesSent

      211

      +

      211

      Size of the HTTP response, expressed in bytes

      +

      Size of the HTTP response, expressed in bytes

      ObjectSize

      -

      +

      -

      Object size

      +

      Object size

      TotalTime

      6

      +

      6

      Processing time on the server

      +

      Processing time on the server

      Unit: ms

      Turn-AroundTime

      6

      +

      6

      Total request processing time

      +

      Total request processing time

      Unit: ms

      Referer

      -

      +

      -

      Referer header of the request

      +

      Referer header of the request

      User-Agent

      HttpClient

      +

      HttpClient

      User-Agent header of the request

      +

      User-Agent header of the request

      VersionID

      -

      +

      -

      Version ID contained in a request

      +

      Version ID contained in a request

      STSLogUrn

      -

      +

      -

      Federated authentication and agency information

      +

      Federated authentication and agency information

      StorageClass

      STANDARD_IA

      +

      STANDARD_IA

      Current object storage class

      +

      Current object storage class

      TargetStorageClass

      GLACIER

      +

      GLACIER

      Storage class that the object will be transitioned to

      +

      Storage class that the object will be transitioned to

      DentryName

      12456/file.txt

      +

      12456%2Ffile.txt

      • For a parallel file system, this field indicates an internal identifier of a file or directory. Its value consists of a parent directory inode number and a file or directory name.
      • For a bucket, the value of this field is -.
      +
      • For a parallel file system, this field represents an internal identifier of a file or directory. Its value consists of a parent directory's inode number and a file or directory name and is displayed in the URL-encoded format.
      • For a bucket, the value of this field is -.
      -

      Request Elements

      In this request, you need to specify the lifecycle configuration in the request body. The lifecycle configuration can be uploaded in the form of an XML file with elements described in Table 2.

      +

      Request Elements

      In this request body, you need to specify the lifecycle configuration in XML format. Table 2 describes the specific configuration elements.

      • If the versioning of a bucket is enabled or suspended, you can set NoncurrentVersionTransition or NoncurrentVersionExpiration to control the lifecycle of historical object versions. The lifecycle of a historical version depends on the time when it becomes a historical one (time when the version is replaced by a new version) and the value of NoncurrentDays. For object deletion, if NoncurrentDays is set to 1, an object version will be deleted only after it becomes a historical one for one day. If the version V1 of object A is created on the first date of a month and new version V2 is uploaded on the fifth date of the month, V1 becomes a historical version. At 00:00 on the seventh date of the month, V1 will expire. If an object version does not meet the deletion conditions, but NoncurrentDays is set to 1 and StorageClass is set to WARM, the version transitions to the Warm storage class one day after it has become a historical version. For example, the V1 version of object A is created on the first day of a month, and its new version V2 is uploaded on the fifth day of the month. Then V1 becomes a historical version. One day later, that is, at 0 o'clock of the seventh day, V1 transitions to the Warm storage class. The deletion or transition of the object after the expiration time may be delayed. The delay is within 48 hours.
      • Objects are processed according to the following procedures, if their latest versions meet the expiration rule and versioning is enabled or suspended for the bucket.
        • Versioning enabled:

          If the latest object version is not a delete marker, a new delete marker will be inserted for the object.

          If the latest object version is a delete marker and is the only version of the object, this latest version will be deleted.

          If the object of the latest version has the DeleteMarker and the object has other versions, all versions of the object remain unchanged.

          @@ -141,7 +141,7 @@ Content-MD5: MD5

      Specifies that OBS executes lifecycle rules for objects before the specified date. The date must be compliant with the ISO8601 format, and the time must be compliant with the UTC format of 00:00:00. For example, 2018-01-01T00:00:00.000Z indicates that objects whose last modification time is earlier than 2018-01-01T00:00:00.000Z are deleted or transitioned to another storage class. Objects whose last modification time is equal to or later than the specified time are not deleted or transitioned to another storage class.

      Type: string

      -

      Ancestor node: Expiration, Transition

      +

      Parent: Expiration, Transition

      Required if the Days element is absent.

      Specifies the number of days (since the latest update to the latest object version) after which the lifecycle rule takes effect.

      Type: integer

      -

      Ancestor node: Expiration, Transition

      +

      Parent: Expiration, Transition

      Required if the Date element is absent.

      The storage class to which the object is transitioned.

      Type: string

      Value options: WARM, COLD

      -

      Ancestor node: Transition, NoncurrentVersionTransition

      +

      Parent: Transition, NoncurrentVersionTransition

      Required if the Transition or NoncurrentVersionTransition element is present.

      Transition time and the object storage class after transition (valid only for the latest object version).

      Type: XML

      -

      Children node: Date or Days, StorageClass

      -

      Ancestor node: Rule

      +

      Child: Date or Days, StorageClass

      +

      Parent: Rule

      Required if the NoncurrentVersionTransition, Expiration, AbortIncompleteMultipartUpload, or NoncurrentVersionExpiration element is absent.

      Container for the object expiration rule (only applicable to the latest versions of objects).

      Type: XML

      -

      Children node: Date or Days

      -

      Ancestor node: Rule

      +

      Child: Date or Days

      +

      Parent: Rule

      Required if Transition, NoncurrentVersionTransition, AbortIncompleteMultipartUpload, or NoncurrentVersionExpiration is absent.

      Unique identifier of a rule. The value can contain a maximum of 255 characters.

      Type: string

      -

      Ancestor node: Rule

      +

      Parent: Rule

      No

      Container for lifecycle rules. You can add multiple rules. The total size of the rules cannot exceed 20 KB.

      Type: XML

      -

      Children node: Rule

      -

      Ancestor node: none

      +

      Child: Rule

      +

      Parent: none

      Yes

      Number of days when the specified rule takes effect after the object becomes a historical version (only applicable to an object's historical version).

      Type: integer

      -

      Ancestor node: NoncurrentVersionExpiration, NoncurrentVersionTransition

      +

      Parent: NoncurrentVersionExpiration, NoncurrentVersionTransition

      Required if the NoncurrentVersionExpiration or NoncurrentVersionTransition element is present.

      Transition time of historical object versions and the object storage class after transition.

      Type: XML

      -

      Children node: NoncurrentDays, StorageClass

      -

      Ancestor node: Rule

      +

      Child: NoncurrentDays, StorageClass

      +

      Parent: Rule

      Required if the Transition, Expiration, AbortIncompleteMultipartUpload, or NoncurrentVersionExpiration element is absent.

      +

      Required if the Transition, Expiration, AbortIncompleteMultipartUpload, or NoncurrentVersionExpiration element is absent.

      NoncurrentVersionExpiration

      Container for the expiration time of objects' historical versions. If versioning is enabled or suspended for a bucket, you can set NoncurrentVersionExpiration to delete historical versions of objects that match the lifecycle rule (only applicable to the historical versions of objects).

      Type: XML

      -

      Children node: NoncurrentDays

      -

      Ancestor node: Rule

      +

      Child: NoncurrentDays

      +

      Parent: Rule

      No

      Container for specifying when the not merged parts (fragments) in an incomplete upload will be deleted.

      Type: XML

      -

      Children node: DaysAfterInitiation

      -

      Ancestor node: Rule

      -
      NOTE:

      AbortIncompleteMultipartUpload does not support filtering by tag.

      -
      +

      Child: DaysAfterInitiation

      +

      Parent: Rule

      Required if the Transition, Expiration, NoncurrentVersionExpiration, or NoncurrentVersionTransition element is absent.

      Specifies the number of days since the initiation of an incomplete multipart upload that OBS will wait before deleting the not merged parts (fragments) of the upload.

      Type: integer

      -

      Ancestor node: AbortIncompleteMultipartUpload

      +

      Parent: AbortIncompleteMultipartUpload

      Required if the AbortIncompleteMultipartUpload element is present.

      Object name prefix that identifies one or more objects to which the rule applies.

      Type: string

      -

      Ancestor node: Rule

      +

      Parent: Rule

      Constraints:

      1. When you configure a lifecycle rule by specifying a prefix, if the specified prefix and the prefix of an existing lifecycle rule overlap, OBS regards these two rules as one and forbids you to configure this rule. For example, if there is a rule with the object prefix abc configured in the system, another rule with the object prefix starting with abc cannot be configured.
      2. If there is already a lifecycle rule that is based on an object prefix, you are not allowed to configure another rule that is applied to the entire bucket.

      Container for a specific lifecycle rule.

      Type: container

      -

      Ancestor node: LifecycleConfiguration

      +

      Parent: LifecycleConfiguration

      Yes

      Indicates whether the rule is enabled.

      Type: string

      -

      Ancestor node: Rule

      +

      Parent: Rule

      Value options: Enabled, Disabled

      Yes

      diff --git a/docs/obs/api-ref/obs_04_0035.html b/docs/obs/api-ref/obs_04_0035.html index d9eb775c..e03fd839 100644 --- a/docs/obs/api-ref/obs_04_0035.html +++ b/docs/obs/api-ref/obs_04_0035.html @@ -116,14 +116,14 @@ Content-Length: length

      Specifies that OBS executes lifecycle rules for objects before the specified date. The date must be compliant with the ISO8601 format, and the time must be compliant with the UTC format of 00:00:00. For example, 2018-01-01T00:00:00.000Z indicates that objects whose last modification time is earlier than 2018-01-01T00:00:00.000Z are deleted or transitioned to another storage class. Objects whose last modification time is equal to or later than the specified time are not deleted or transitioned to another storage class.

      Type: string

      -

      Ancestor node: Expiration, Transition

      +

      Parent: Expiration, Transition

      Days

      Specifies the number of days (since the latest update to the latest object version) after which the lifecycle rule is executed.

      Type: integer

      -

      Ancestor node: Expiration, Transition

      +

      Parent: Expiration, Transition

      StorageClass

      @@ -131,97 +131,97 @@ Content-Length: length

      The storage class to which the object is transitioned.

      Type: string

      Value options: WARM, COLD

      -

      Ancestor node: Transition, NoncurrentVersionTransition

      +

      Parent: Transition, NoncurrentVersionTransition

      Transition

      Transition time and the object storage class after transition (valid only for the latest object version).

      Type: XML

      -

      Children node: Date or Days

      -

      Ancestor node: Rule

      +

      Child: Date or Days

      +

      Parent: Rule

      Expiration

      Container for the object expiration rule.

      Type: XML

      -

      Children node: Date or Days

      -

      Ancestor node: Rule

      +

      Child: Date or Days

      +

      Parent: Rule

      ID

      Unique identifier of a rule. The value can contain a maximum of 255 characters.

      Type: string

      -

      Ancestor node: Rule

      +

      Parent: Rule

      LifecycleConfiguration

      Container for lifecycle rules. You can add multiple rules. The total size of the rules cannot exceed 20 KB.

      Type: XML

      -

      Children node: Rule

      -

      Ancestor node: none

      +

      Child: Rule

      +

      Parent: none

      NoncurrentDays

      Number of days when the specified rule takes effect after the object becomes a historical version.

      Type: integer

      -

      Ancestor node: NoncurrentVersionExpiration, NoncurrentVersionTransition

      +

      Parent: NoncurrentVersionExpiration, NoncurrentVersionTransition

      NoncurrentVersionTransition

      Transition time of historical object versions and the object storage class after transition.

      Type: XML

      -

      Children node: NoncurrentDays, StorageClass

      -

      Ancestor node: Rule

      +

      Child: NoncurrentDays, StorageClass

      +

      Parent: Rule

      NoncurrentVersionExpiration

      Container for the expiration time of objects' historical versions. If versioning is enabled or suspended for a bucket, you can set NoncurrentVersionExpiration to delete objects whose life cycles have expired.

      Type: XML

      -

      Children node: NoncurrentDays

      -

      Ancestor node: Rule

      +

      Child: NoncurrentDays

      +

      Parent: Rule

      AbortIncompleteMultipartUpload

      Container for specifying when the not merged parts (fragments) in an incomplete upload will be deleted.

      Type: XML

      -

      Children node: DaysAfterInitiation

      -

      Ancestor node: Rule

      +

      Child: DaysAfterInitiation

      +

      Parent: Rule

      DaysAfterInitiation

      Specifies the number of days since the initiation of an incomplete multipart upload that OBS will wait before deleting the not merged parts (fragments) of the upload.

      Type: integer

      -

      Ancestor node: AbortIncompleteMultipartUpload

      +

      Parent: AbortIncompleteMultipartUpload

      Prefix

      Object name prefix identifying one or more objects to which the rule applies.

      Type: string

      -

      Ancestor node: Rule

      +

      Parent: Rule

      Rule

      Container for a specific lifecycle rule.

      Type: container

      -

      Ancestor node: LifecycleConfiguration

      +

      Parent: LifecycleConfiguration

      Status

      Indicates whether the rule is enabled.

      Type: string

      -

      Ancestor node: Rule

      +

      Parent: Rule

      Value options: Enabled, Disabled

      @@ -58,7 +58,7 @@ Content-Length: length @@ -97,8 +97,8 @@ Authorization: authorization strin @@ -107,7 +107,7 @@ Authorization: authorization strin - @@ -135,8 +135,8 @@ Authorization: authorization strin @@ -145,8 +145,8 @@ Authorization: authorization strin @@ -155,8 +155,8 @@ Authorization: authorization strin @@ -165,7 +165,7 @@ Authorization: authorization strin @@ -196,7 +196,7 @@ Authorization: authorization strin

      Or use wildcard characters to support all delete operations:

      • ObjectRemoved:*

      -

      Ancestor: TopicConfiguration

      +

      Parent: TopicConfiguration

      diff --git a/docs/obs/api-ref/obs_04_0040.html b/docs/obs/api-ref/obs_04_0040.html index 1887f913..e8cfcc16 100644 --- a/docs/obs/api-ref/obs_04_0040.html +++ b/docs/obs/api-ref/obs_04_0040.html @@ -92,60 +92,60 @@ Content-Length: length - @@ -153,7 +153,7 @@ Content-Length: length diff --git a/docs/obs/api-ref/obs_04_0044.html b/docs/obs/api-ref/obs_04_0044.html index 23fda8be..e29fbe85 100644 --- a/docs/obs/api-ref/obs_04_0044.html +++ b/docs/obs/api-ref/obs_04_0044.html @@ -3,7 +3,7 @@

      Configuring Storage Class for a Bucket

      Functions

      This operation sets or updates the default storage class of a bucket.

      To perform this operation, you must have the PutBucketStoragePolicy permission. By default, only the bucket owner can perform this operation. The bucket owner can grant the permission to other users by configuring the bucket policy or user policy.

      -

      After the default storage class has been set for a bucket, if the storage class of an object is not specified during uploading, copying, or initialization of multi-part upload, the object storage class is the same as the default storage class of the bucket.

      +

      If you do not specify a storage class when uploading or copying an object, or initiating a multipart upload, the object inherits the bucket's storage class.

      The default storage class of a bucket is Standard.

      Request Syntax

      1
      @@ -32,7 +32,7 @@ Content-Length: length
       
       
      -

      Request Parameters

      This request contains no message parameters.

      +

      Request Parameters

      This request contains no parameters.

      Request Headers

      This request uses common headers. For details, see Table 3.

      @@ -49,7 +49,7 @@ Content-Length: length

      VersioningConfiguration

      Root node for configuring versioning

      -

      Ancestor node: none

      +

      Parent: none

      Yes

      Versioning status of the bucket

      Type: string

      -

      Ancestor node: VersioningConfiguration

      +

      Parent: VersioningConfiguration

      Value options: Enabled, Suspended

      Yes

      diff --git a/docs/obs/api-ref/obs_04_0039.html b/docs/obs/api-ref/obs_04_0039.html index e1a80294..f323dc32 100644 --- a/docs/obs/api-ref/obs_04_0039.html +++ b/docs/obs/api-ref/obs_04_0039.html @@ -87,8 +87,8 @@ Authorization: authorization strin

      Root element for configuring the event notification function of a bucket. If the sub element is null, the function is disabled.

      Type: container

      -

      Ancestor: none

      -

      Children: zero or multiple TopicConfiguration elements

      +

      Parent: none

      +

      Child: zero or multiple TopicConfiguration elements

      Yes

      Element for configuring the event notification topic.

      Type: container

      -

      Ancestor: NotificationConfiguration

      -

      Children: Id, Filter, Topic, Event, or Events

      +

      Parent: NotificationConfiguration

      +

      Child: Id, Filter, Topic, and one or more Event elements

      No

      URN of the event notification topic. When OBS detects a specific event in the bucket, it publishes a notification message to the topic. The topic value can be found in SMN topics.

      Type: string

      -

      Ancestor: TopicConfiguration

      +

      Parent: TopicConfiguration

      Template:

      1
      <Topic>urn:smn:region:project_id:smn_topic</Topic>
       
      @@ -124,9 +124,9 @@ Authorization: authorization strin

      Id

      Unique ID of each event notification. If the user does not specify an ID, the system assigns an ID automatically.

      +

      Unique ID of each event notification. If the ID is not specified, OBS automatically assigns an ID.

      Type: string

      -

      Ancestor: TopicConfiguration

      +

      Parent: TopicConfiguration

      No

      Element used to store rules of filtering object names.

      Type: container

      -

      Ancestor: TopicConfiguration

      -

      Children: Object

      +

      Parent: TopicConfiguration

      +

      Child: Object

      No

      Element that defines the filtering rule. The rule filters objects based on the prefixes and suffixes of object names.

      Type: container

      -

      Ancestor: Filter

      -

      Children: one or more FilterRules

      +

      Parent: Filter

      +

      Child: one or more FilterRule elements

      No

      Element that defines key-value pairs of the filtering rule

      Type: container

      -

      Ancestor: Object

      -

      Children: Name, Value

      +

      Parent: Object

      +

      Child: Name and Value

      No

      Prefix or suffix of object names for filtering

      Type: string

      -

      Ancestor: FilterRule

      +

      Parent: FilterRule

      Value options: prefix, suffix

      No

      @@ -175,7 +175,7 @@ Authorization: authorization strin

      Key word of object names. Based on the prefix or suffix defined by Name, enter the key word for filtering objects. A longer string of characters delivers a more accurate filtering result. A maximum of 1024 characters are supported.

      Type: string

      -

      Ancestor: FilterRule

      +

      Parent: FilterRule

      No

      Required if TopicConfiguration is added

      Element for configuring the event notification function of a bucket. If this element is null, the function is disabled.

      Type: container

      -

      Ancestor: none

      -

      Children: one or more TopicConfiguration elements

      +

      Parent: none

      +

      Child: one or more TopicConfiguration elements

      TopicConfiguration

      Element for configuring the event notification topic.

      Type: container

      -

      Ancestor: NotificationConfiguration

      -

      Children: Id, Filter, Topic, Event, or Events

      +

      Parent: NotificationConfiguration

      +

      Child: Id, Filter, Topic, and one or more Event elements

      Topic

      URN of the event notification topic. After detecting a specific event in the bucket, OBS sends a message to the topic.

      Type: string

      -

      Ancestor: TopicConfiguration

      +

      Parent: TopicConfiguration

      Id

      Unique ID of each event notification. If the user does not specify an ID, the system assigns an ID automatically.

      +

      Unique ID of each event notification. If the ID is not specified, OBS automatically assigns an ID.

      Type: string

      -

      Ancestor: TopicConfiguration

      +

      Parent: TopicConfiguration

      Filter

      Element used to store rules of filtering object names.

      Type: container

      -

      Ancestor: TopicConfiguration

      -

      Children: Object

      +

      Parent: TopicConfiguration

      +

      Child: Object

      Object

      Element used to store rules of filtering object names.

      Type: container

      -

      Ancestor: TopicConfiguration

      +

      Parent: TopicConfiguration

      FilterRule

      Element that defines key-value pairs of the filtering rule.

      Type: container

      -

      Ancestor: Object

      -

      Children: Name, Value

      +

      Parent: Object

      +

      Child: Name and Value

      Name

      Prefix or suffix of object names for filtering

      Type: string

      -

      Ancestor: FilterRule

      +

      Parent: FilterRule

      Value options: prefix, suffix

      Keywords of object names so that objects can be filtered based on the prefixes or suffixes

      Type: string

      -

      Ancestor: FilterRule

      +

      Parent: FilterRule

      Event

      @@ -172,7 +172,7 @@ Content-Length: length

      Or use wildcard characters to support all delete operations:

      • ObjectRemoved:*

      -

      Ancestor: TopicConfiguration

      +

      Parent: TopicConfiguration

      - - - diff --git a/docs/obs/api-ref/obs_04_0046.html b/docs/obs/api-ref/obs_04_0046.html index 7d2a5265..33ed8225 100644 --- a/docs/obs/api-ref/obs_04_0046.html +++ b/docs/obs/api-ref/obs_04_0046.html @@ -2,8 +2,10 @@

      Configuring Cross-Region Replication for a Bucket

      Functions

      Cross-region replication refers to the automatic and asynchronous replication of objects across buckets in different regions. By activating cross-region replication, OBS can copy new objects and modified objects from a source bucket in one region to a destination bucket in a different region.

      -

      The following two requirements must be met when configuring the cross-region replication for a bucket:

      -
      1. Cross-region replication can be configured only when the versioning statuses of the source and destination buckets are the same. For details about how to configure bucket versioning, see Configuring Versioning for a Bucket.
      2. The owner and agency (OBS) of the source bucket must have the permission to write the destination bucket (configured with BucketPolicy), and the agency (OBS) must have the read permission for the source bucket. This permission delegation needs to be implemented by calling the BucketPolicy API.
      +

      An IAM agency is required for configuring cross-region replication. For details, see section "Creating an IAM Agency" in the Object Storage Service User Guide.

      +
      +

      To configure cross-region replication for a bucket, the following two requirements must be met:

      +
      1. The versioning statuses of the source and destination buckets are the same. For details, see Configuring Versioning for a Bucket.
      2. The source bucket's owner and agency (OBS) have the write permission for the destination bucket (with a bucket policy configured), and the agency (OBS) also has the read permission for the source bucket. This permission delegation needs to be implemented by using a bucket policy.

      For details about how to configure the bucket policy, see Configuring a Bucket Policy. After the bucket policy is set, the agency (OBS) can read objects from the source bucket and copy objects to the destination bucket.

      Request Syntax

      1
      @@ -41,14 +41,14 @@ Authorization: authorization 
       
       

      StorageClass

      +

      StorageClass

      Specifies the default storage class for a bucket.

      -

      Type: string

      -

      Value options: STANDARD, WARM, COLD

      -

      The available storage classes are as follows: Standard (STANDARD), Warm (WARM), Cold (COLD).

      +

      Specifies the default storage class for a bucket.

      +

      Type: string

      +

      Value options: STANDARD, WARM, COLD

      +

      The available storage classes are as follows: Standard (STANDARD), Warm (WARM), Cold (COLD).

      Yes

      +

      Yes

      @@ -98,7 +100,7 @@ Content-Length: contentlength @@ -108,7 +110,7 @@ Content-Length: contentlength @@ -127,7 +129,7 @@ Content-Length: contentlength @@ -147,7 +149,7 @@ Content-Length: contentlength @@ -157,7 +159,7 @@ Content-Length: contentlength @@ -166,7 +168,7 @@ Content-Length: contentlength @@ -116,14 +116,14 @@ Content-Length: contentlength @@ -146,16 +146,16 @@ Content-Length: contentlength diff --git a/docs/obs/api-ref/obs_04_0049.html b/docs/obs/api-ref/obs_04_0049.html index 244b525d..2727ae13 100644 --- a/docs/obs/api-ref/obs_04_0049.html +++ b/docs/obs/api-ref/obs_04_0049.html @@ -75,7 +75,7 @@ Content-MD5: md5 @@ -84,7 +84,7 @@ Content-MD5: md5 @@ -93,7 +93,7 @@ Content-MD5: md5 @@ -102,7 +102,7 @@ Content-MD5: md5 @@ -111,7 +111,7 @@ Content-MD5: md5 diff --git a/docs/obs/api-ref/obs_04_0050.html b/docs/obs/api-ref/obs_04_0050.html index 50a793a2..6b8e25cd 100644 --- a/docs/obs/api-ref/obs_04_0050.html +++ b/docs/obs/api-ref/obs_04_0050.html @@ -68,35 +68,35 @@ Date: date diff --git a/docs/obs/api-ref/obs_04_0055.html b/docs/obs/api-ref/obs_04_0055.html new file mode 100644 index 00000000..ed145e8c --- /dev/null +++ b/docs/obs/api-ref/obs_04_0055.html @@ -0,0 +1,347 @@ + + +

      Configuring Bucket Inventories

      +

      Functions

      OBS uses the PUT method to configure bucket inventories. Each bucket can have a maximum of 10 inventories.

      +

      To perform this operation, ensure that you have the PutBucketInventoryConfiguration permission. By default, the bucket owner has this permission and can grant it to others.

      +

      In order for inventory files to be successfully generated in a target bucket, it is necessary to configure a custom policy for this target bucket. For details, see Configuring a Bucket Policy.

      +

      Policy body:

      +
      {
      +     "Sid": "bucktetInventoryPolicyStatementId",
      +     "Effect": "Allow",
      +     "Principal": {
      +         "Service": "obs"
      +     },
      +     "Action": "PutObject",
      +     "Resource": "target-bucket-name/*"
      + }
      +
      +

      Request Syntax

      PUT /?inventory&id=configuration-id  HTTP/1.1
      +User-Agent: curl/7.29.0
      +Host: bucketname.obs.region.example.com
      +Accept: */*
      +Date: date
      +Authorization: authorization string
      +Content-Length: length
      +Expect: 100-continue
      +
      +<InventoryConfiguration>
      +   <Id>configuration-id</Id>
      +   <IsEnabled>true</IsEnabled>
      +   <Filter>
      +         <Prefix>inventoryTestPrefix</Prefix>
      +   </Filter>
      +   <Destination>
      +         <Format>CSV</Format>
      +         <Bucket>destbucket</Bucket>
      +         <Prefix>dest-prefix</Prefix>
      +   </Destination>
      +   <Schedule>
      +          <Frequency>Daily</Frequency>
      +   </Schedule>
      +   <IncludedObjectVersions>All</IncludedObjectVersions>
      +   <OptionalFields>
      +          <Field>Size</Field>
      +          <Field>LastModifiedDate</Field>
      +          <Field>ETag</Field>
      +          <Field>StorageClass</Field>
      +          <Field>IsMultipartUploaded</Field>
      +          <Field>ReplicationStatus</Field>
      +          <Field>EncryptionStatus</Field>
      +   </OptionalFields>
      +</InventoryConfiguration>
      +
      +

      Request Parameters

      +
       1
      @@ -88,8 +90,8 @@ Content-Length: contentlength 
       

      Container for the replication rules. A maximum of 100 rules can be configured. The size of the XML file can reach 50 KB.

      Type: container

      -

      Children: Rule

      -

      Ancestor: none

      +

      Child: Rule

      +

      Parent: none

      Yes

      Name of the agency, which can have a maximum of 64 characters.

      Type: string

      -

      Ancestor: ReplicationConfiguration

      +

      Parent: ReplicationConfiguration

      Yes

      Container of a specified replication rule.

      The replication configuration must contain at least one rule. The maximum number of rules is 100.

      Type: container

      -

      Ancestor:

      +

      Parent:

      ReplicationConfiguration

      Yes

      @@ -118,7 +120,7 @@ Content-Length: contentlength

      Unique identifier of a rule, with a maximum length of 255 characters.

      Type: string

      -

      Ancestor: Rule

      +

      Parent: Rule

      No

      If the value of this element is Disabled, this rule will be ignored.

      Type: string

      -

      Ancestor: Rule

      +

      Parent: Rule

      Value options: Enabled, Disabled

      Yes

      @@ -138,7 +140,7 @@ Content-Length: contentlength

      Prefix of an object key name, applicable to one or more objects. If the Prefix is left blank, the cross-region replication rule is applied to the whole bucket.

      The maximum length of a prefix is 1024 characters. Duplicated prefixes are not supported.

      Type: string

      -

      Ancestor: Rule

      +

      Parent: Rule

      Yes

      Container for the destination bucket information.

      Type: container

      -

      Ancestor: Rule

      +

      Parent: Rule

      Yes

      Bucket used to store object copies that are marked by rules.

      If the replication configuration contains multiple rules, the rules must specify the same bucket as the destination bucket.

      Type: string

      -

      Ancestor: Destination

      +

      Parent: Destination

      Yes

      Storage class of an object

      Type: string

      -

      Ancestor: Destination

      +

      Parent: Destination

      Value options: STANDARD, WARM, COLD

      No

      @@ -176,7 +178,7 @@ Content-Length: contentlength

      Keyword for synchronizing object deletion operations. If the value is Enabled, the object deletion for the source bucket will be replicated to the destination bucket.

      Type: string

      -

      Ancestor: Destination

      +

      Parent: Destination

      Value options: Enabled and Disabled (If this element is absent from the request, Disabled is applied by default.)

      No

      @@ -186,7 +188,7 @@ Content-Length: contentlength

      Keyword for copying a historical object. If the value is Enabled, historical objects meeting this rule are copied.

      Type: string

      -

      Ancestor: Rule

      +

      Parent: Rule

      Value options: Enabled and Disabled (If this element is absent from the request, Disabled is applied by default.)

      No

      diff --git a/docs/obs/api-ref/obs_04_0047.html b/docs/obs/api-ref/obs_04_0047.html index e6c9cef6..e7a026d9 100644 --- a/docs/obs/api-ref/obs_04_0047.html +++ b/docs/obs/api-ref/obs_04_0047.html @@ -77,15 +77,15 @@ Content-Length: contentlength

      Container for the replication rules. A maximum of 100 rules can be configured. The size of the XML file can reach 50 KB.

      Type: container

      -

      Children: Rule

      -

      Ancestor: none

      +

      Child: Rule

      +

      Parent: none

      Agency

      Name of the agency, which can have a maximum of 64 characters.

      Type: string

      -

      Ancestor: ReplicationConfiguration

      +

      Parent: ReplicationConfiguration

      Rule

      @@ -93,21 +93,21 @@ Content-Length: contentlength

      Container of a specified replication rule.

      The replication configuration must contain at least one rule. The maximum number of rules is 100.

      Type: container

      -

      Ancestor: ReplicationConfiguration

      +

      Parent: ReplicationConfiguration

      ID

      Unique identifier of a rule, with a maximum length of 255 characters.

      Type: string

      -

      Ancestor: Rule

      +

      Parent: Rule

      Status

      If the value of this element is Disabled, this rule will be ignored.

      Type: string

      -

      Ancestor: Rule

      +

      Parent: Rule

      Value options: Enabled, Disabled

      Prefix of an object key name, applicable to one or more objects. If the Prefix is left blank, the cross-region replication rule is applied to the whole bucket.

      The maximum length of a prefix is 1,024 characters. Duplicated prefixes are not supported.

      Type: string

      -

      Ancestor: Rule

      +

      Parent: Rule

      Destination

      Container for the destination bucket information.

      Type: container

      -

      Ancestor: Rule

      +

      Parent: Rule

      Bucket

      @@ -131,14 +131,14 @@ Content-Length: contentlength

      Bucket used to store object copies that are marked by rules.

      If the replication configuration contains multiple rules, the rules must specify the same bucket as the destination bucket.

      Type: string

      -

      Ancestor: Destination

      +

      Parent: Destination

      StorageClass

      Storage class of an object.

      Type: string

      -

      Ancestor: Destination

      +

      Parent: Destination

      Value options: STANDARD, WARM, COLD

      Keyword for synchronizing object deletion operations. If the value is Enabled, the object deletion for the source bucket will be replicated to the destination bucket.

      Type: string

      -

      Ancestor: Destination

      -

      Value options: Enabled and Disabled (If this element is absent from the request, Disabled is applied by default.)

      +

      Parent: Destination

      +

      Value options: Enabled and Disabled (If this element is absent from the request, Disabled is applied by default.)

      HistoricalObjectReplication

      Keyword for copying a historical object. If the value is Enabled, historical objects meeting this rule are copied.

      Type: string

      -

      Ancestor: Rule

      -

      Value options: Enabled and Disabled (If this element is absent from the request, Disabled is applied by default.)

      +

      Parent: Rule

      +

      Value options: Enabled and Disabled (If this element is absent from the request, Disabled is applied by default.)

      Root element for TagSet and Tag

      Type: container

      -

      Ancestor: none

      +

      Parent: none

      Yes

      Element of the tag set

      Type: container

      -

      Ancestor: Tagging

      +

      Parent: Tagging

      Yes

      Information element of Tag

      Type: container

      -

      Ancestor: TagSet

      +

      Parent: TagSet

      Yes

      Tag name

      Type: string

      -

      Ancestor: Tag

      +

      Parent: Tag

      Yes

      Tag value

      Type: string

      -

      Ancestor: Tag

      +

      Parent: Tag

      Yes

      Element of the tag set and tag.

      Type: container

      -

      Ancestor: none

      +

      Parent: none

      TagSet

      Element of the tag set.

      Type: container

      -

      Ancestor: Tagging

      +

      Parent: Tagging

      Tag

      Element of the tag information.

      Type: container

      -

      Ancestor: TagSet

      +

      Parent: TagSet

      Key

      Tag name.

      Type: string

      -

      Ancestor: Tag

      +

      Parent: Tag

      Value

      Tag value.

      Type: string

      -

      Ancestor: Tag

      +

      Parent: Tag

      + + + + + + + + + +
      Table 1 Request parameters

      Parameter

      +

      Description

      +

      Mandatory

      +

      id

      +

      ID of the inventory configuration, which must be consistent with the inventory configuration ID in the message body.

      +

      Type: string

      +

      Specifications: A maximum of 64 characters

      +

      There is no default value.

      +

      Valid characters: letters, digits, hyphens (-), periods (.) and underscores (_)

      +

      Yes

      +
      +
      +
      +

      Request Headers

      This request uses common headers. For details, see Table 3.

      +
      +

      Request Elements

      In this request, you must configure the bucket inventory in the request body. Upload the inventory configuration information in an XML file. Table 2 lists the configuration elements.

      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Table 2 Bucket inventory configuration elements

      Element

      +

      Description

      +

      Mandatory

      +

      InventoryConfiguration

      +

      Inventory configuration.

      +

      Type: container

      +

      Parent: none

      +

      Child: Id, IsEnabled, Filter, Destination, Schedule, IncludedObjectVersions, and OptionalFields

      +

      Yes

      +

      Id

      +

      ID of an inventory configuration, which must be consistent with the inventory configuration ID specified in the request.

      +

      Type: string

      +

      Specifications: A maximum of 64 characters

      +

      There is no default value.

      +

      Valid characters: letters, digits, hyphens (-), periods (.) and underscores (_)

      +

      Parent: InventoryConfiguration

      +

      Yes

      +

      IsEnabled

      +

      Indicates whether the rule is enabled. If this parameter is set to true, the inventory is generated. If not, the inventory will not be generated.

      +

      Type: boolean

      +

      Value options: true, false

      +

      Parent: InventoryConfiguration

      +

      Yes

      +

      Filter

      +

      Inventory filter configuration. The inventory contains only objects that meet the filter criteria (filtering by object name prefix). If no filter criteria is configured, all objects are included.

      +

      Type: container

      +

      Parent: InventoryConfiguration

      +

      Child: Prefix

      +

      No

      +

      Prefix

      +

      Filtering by name prefix. Only objects with the specified name prefix are included in the inventory.

      +

      Type: string

      +

      Parent: Filter

      +

      No

      +

      Schedule

      +

      Time scheduled for generation of inventories.

      +

      Type: container

      +

      Parent: InventoryConfiguration

      +

      Child: Frequency

      +

      Yes

      +

      Frequency

      +

      Intervals when inventories are generated. You can set this parameter to Daily or Weekly. An inventory is generated within one hour after it is configured for the first time. Then it is generated at the specified intervals.

      +

      Type: string

      +

      Parent: Schedule

      +

      Value options: Daily, Weekly

      +

      Yes

      +

      Destination

      +

      Destination bucket of an inventory.

      +

      Type: container

      +

      Parent: InventoryConfiguration

      +

      Yes

      +

      Format

      +

      Inventory format. Only the CSV format is supported.

      +

      Type: string

      +

      Parent: Destination

      +

      Value options: CSV

      +

      Yes

      +

      Bucket

      +

      Name of the bucket for saving inventories.

      +

      Type: string

      +

      Parent: Destination

      +

      Yes

      +

      Prefix

      +

      The name prefix of inventory files. If no prefix is configured, the names of inventory files will start with the BucketInventory by default.

      +

      Type: string

      +

      Parent: Destination

      +

      No

      +

      IncludedObjectVersions

      +

      Indicates whether versions of objects are included in an inventory.

      +
      • If this parameter is set to All, all the versions of objects are included in the inventory, and versioning related fields are added to the inventory, including: VersionId, IsLatest, and DeleteMarker.
      • If this parameter is set to Current, the inventory contains only the current objects versions at the time when the inventory is generated. No versioning fields are displayed in the inventory.
      +

      Type: string

      +

      Parent: InventoryConfiguration

      +

      Value options: All, Current

      +

      Yes

      +

      OptionalFields

      +

      Extra metadata fields that can be added to an inventory. If this parameter is configured, fields specified in this parameter are contained in the inventory.

      +

      Type: container

      +

      Parent: InventoryConfiguration

      +

      Child: Field

      +

      No

      +

      Field

      +

      Optional fields. The OptionalFields can contain multiple field elements.

      +

      Type: string

      +

      Parent: OptionalFields

      +

      Value options: Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus

      +

      No

      +
      +
      +
      +

      Response Syntax

      1
      +2
      +3
      +4
      +5
      HTTP/1.1 status_code
      +x-obs-request-id: request id
      +x-obs-id-2: id
      +Date: date
      +Content-Length: length
      +
      + +
      +
      +

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      +
      +

      Response Elements

      This response contains no elements.

      +
      +

      Error Responses

      In addition to common error codes, this API also returns other error codes. The following lists some common errors and possible causes of this API. For details, see Table 3.

      + +
      + + + + + + + + + + + + + + + + + + + + + +
      Table 3 Inventory configuration error codes

      Error Code

      +

      Description

      +

      HTTP Status Code

      +

      MalformedXML

      +

      Incorrect XML format of the inventory.

      +

      400 Bad Request

      +

      InvalidArgument

      +

      Invalid parameter.

      +

      400 Bad Request

      +

      InventoryCountOverLimit

      +

      The number of inventories reached the upper limit.

      +

      400 Bad Request

      +

      PrefixExistInclusionRelationship

      +

      The prefix configured for this inventory overlaps with prefixes of existing inventories.

      +

      400 Bad Request

      +
      +
      +
      +

      Sample Request

      PUT /?inventory&id=test_id HTTP/1.1
      +User-Agent: curl/7.29.0
      +Host: examplebucket.obs.region.example.com
      +Accept: */*
      +Date: Tue, 08 Jan 2019 08:17:10 +0000
      +Authorization: OBS UDSIAMSTUBTEST000001:/e2fqSfzLDb+0M36D4Op/s5KKr0=
      +Content-Length: 600
      +Expect: 100-continue
      +
      +<InventoryConfiguration>
      +   <Id>test_id</Id>
      +   <IsEnabled>true</IsEnabled>
      +   <Filter>
      +         <Prefix>inventoryTestPrefix</Prefix>
      +   </Filter>
      +   <Destination>
      +         <Format>CSV</Format>
      +         <Bucket>destbucket</Bucket>
      +         <Prefix>dest-prefix</Prefix>
      +   </Destination>
      +   <Schedule>
      +          <Frequency>Daily</Frequency>
      +   </Schedule>
      +   <IncludedObjectVersions>All</IncludedObjectVersions>
      +   <OptionalFields>
      +          <Field>Size</Field>
      +          <Field>LastModifiedDate</Field>
      +          <Field>ETag</Field>
      +          <Field>StorageClass</Field>
      +          <Field>IsMultipartUploaded</Field>
      +          <Field>ReplicationStatus</Field>
      +          <Field>EncryptionStatus</Field>
      +   </OptionalFields>
      +</InventoryConfiguration>
      +
      +

      Sample Response

      1
      +2
      +3
      +4
      +5
      +6
      HTTP/1.1 200 OK
      +Server: OBS
      +x-obs-request-id: 000001682C8545B0680893425D60AB83
      +x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSIGTuRtBfo7lpHSt0ZknhdDHmllwd/p
      +Date: Tue, 08 Jan 2019 08:12:38 GMT
      +Content-Length: 0
      +
      + +
      +
      +
      +
      + +
      + diff --git a/docs/obs/api-ref/obs_04_0056.html b/docs/obs/api-ref/obs_04_0056.html new file mode 100644 index 00000000..b8f5db4d --- /dev/null +++ b/docs/obs/api-ref/obs_04_0056.html @@ -0,0 +1,337 @@ + + +

      Obtaining a Specific Inventory of a Bucket

      +

      Functions

      OBS uses the GET method to obtain a specific inventory of a bucket.

      +

      To perform this operation, you must have the GetBucketInventoryConfiguration permission. By default, the bucket owner has this permission and can grant it to others.

      +
      +

      Request Syntax

      GET /?inventory&id=configuration-id HTTP/1.1
      +User-Agent: curl/7.29.0
      +Host: bucketname.obs.region.example.com
      +Accept: */*
      +Date: date
      +Authorization: authorization string
      +
      +

      Request Parameters

      +
      + + + + + + + + + +
      Table 1 Request parameters

      Parameter

      +

      Description

      +

      Mandatory

      +

      id

      +

      ID of the inventory configuration that you want to obtain.

      +

      Type: string

      +

      Specifications: A maximum of 64 characters

      +

      There is no default value.

      +

      Valid characters: letters, digits, hyphens (-), periods (.) and underscores (_)

      +

      Yes

      +
      +
      +
      +

      Request Headers

      This request uses common headers. For details, see Table 3.

      +
      +

      Request Elements

      This request involves no elements.

      +
      +

      Response Syntax

       1
      + 2
      + 3
      + 4
      + 5
      + 6
      + 7
      + 8
      + 9
      +10
      +11
      +12
      +13
      +14
      +15
      +16
      +17
      +18
      +19
      +20
      +21
      +22
      +23
      +24
      +25
      +26
      +27
      +28
      +29
      +30
      +31
      +32
      +33
      +34
      HTTP/1.1 status_code
      +Server: OBS
      +x-obs-request-id: request id
      +x-obs-id-2: id
      +Content-Type: application/xml
      +Date: date
      +Content-Length: length
      +
      +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      +<InventoryConfiguration  xmlns="http://obs.region.example.com/doc/2015-06-30/">
      +  <Id>configuration-id</Id>
      +  <IsEnabled>true</IsEnabled>
      +  <Filter>
      +        <Prefix>inventoryTestPrefix</Prefix>
      +  </Filter>
      +  <Destination>
      +    <Format>CSV</Format>
      +    <Bucket>destbucket</Bucket>
      +    <Prefix>prefix</Prefix>
      +  </Destination>
      +  <Schedule>
      +    <Frequency>Daily</Frequency>
      +  </Schedule>
      +  <IncludedObjectVersions>Current</IncludedObjectVersions>
      +  <OptionalFields>
      +    <Field>Size</Field>
      +    <Field>LastModifiedDate</Field>
      +    <Field>ETag</Field>
      +    <Field>StorageClass</Field>
      +    <Field>IsMultipartUploaded</Field>
      +    <Field>ReplicationStatus</Field>
      +    <Field>EncryptionStatus</Field>
      +  </OptionalFields>
      +</InventoryConfiguration>
      +
      + +
      +
      +

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      +
      +

      Response Elements

      Table 2 lists elements contained in the response body.

      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Table 2 Elements in a response body to the request for bucket inventory configurations

      Element

      +

      Description

      +

      InventoryConfiguration

      +

      Inventory configuration.

      +

      Type: container

      +

      Parent: none

      +

      Child: Id, IsEnabled, Filter, Destination, Schedule, IncludedObjectVersions, and OptionalFields

      +

      Id

      +

      ID of an inventory configuration, which must be consistent with the inventory configuration ID specified in the request.

      +

      Type: string

      +

      Specifications: A maximum of 64 characters

      +

      There is no default value.

      +

      Valid characters: letters, digits, hyphens (-), periods (.) and underscores (_)

      +

      Parent: InventoryConfiguration

      +

      IsEnabled

      +

      Indicates whether the rule is enabled. If this parameter is set to true, the inventory is generated. If not, the inventory will not be generated.

      +

      Type: boolean

      +

      Value options: true, false

      +

      Parent: InventoryConfiguration

      +

      Filter

      +

      Inventory filter configuration. The inventory contains only objects that meet the filter criteria (filtering by object name prefix). If no filter criteria is configured, all objects are included.

      +

      Type: container

      +

      Parent: InventoryConfiguration

      +

      Child: Prefix

      +

      Prefix

      +

      Filtering by name prefix. Only objects with the specified name prefix are included in the inventory.

      +

      Type: string

      +

      Parent: Filter

      +

      Schedule

      +

      Time scheduled for generation of inventories.

      +

      Type: container

      +

      Parent: InventoryConfiguration

      +

      Child: Frequency

      +

      Frequency

      +

      Intervals when inventories are generated. You can set this parameter to Daily or Weekly. An inventory is generated within one hour after it is configured for the first time. Then it is generated at the specified intervals.

      +

      Type: string

      +

      Parent: Schedule

      +

      Value options: Daily, Weekly

      +

      Destination

      +

      Destination bucket of an inventory.

      +

      Type: container

      +

      Parent: InventoryConfiguration

      +

      Format

      +

      Inventory format. Only the CSV format is supported.

      +

      Type: string

      +

      Parent: Destination

      +

      Value options: CSV

      +

      Bucket

      +

      Name of the bucket for saving inventories.

      +

      Type: string

      +

      Parent: Destination

      +

      Prefix

      +

      The name prefix of inventory files. If no prefix is configured, the names of inventory files will start with the BucketInventory by default.

      +

      Type: string

      +

      Parent: Destination

      +

      IncludedObjectVersions

      +

      Indicates whether versions of objects are included in an inventory.

      +
      • If this parameter is set to All, all the versions of objects are included in the inventory, and versioning related fields are added to the inventory, including: VersionId, IsLatest, and DeleteMarker.
      • If this parameter is set to Current, the inventory contains only the current objects versions at the time when the inventory is generated. No versioning fields are displayed in the inventory.
      +

      Type: string

      +

      Parent: InventoryConfiguration

      +

      Value options: All, Current

      +

      OptionalFields

      +

      Extra metadata fields that can be added to an inventory. If this parameter is configured, fields specified in this parameter are contained in the inventory.

      +

      Type: container

      +

      Parent: InventoryConfiguration

      +

      Child: Field

      +

      Field

      +

      Optional fields. The OptionalFields can contain multiple field elements.

      +

      Type: string

      +

      Parent: OptionalFields

      +

      Value options: Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus

      +
      +
      +
      +

      Error Responses

      In addition to common error codes, this API also returns other error codes. The following table lists common errors and possible causes. For details, see Table 3.

      + +
      + + + + + + + + + +
      Table 3 Error codes related to obtaining inventory configurations

      Error Code

      +

      Description

      +

      HTTP Status Code

      +

      NoSuchInventoryConfiguration

      +

      No inventory configuration found matching the specified ID.

      +

      404 Not Found

      +
      +
      +
      +

      Sample Request

      GET /?inventory&id=id1 HTTP/1.1
      +User-Agent: curl/7.29.0
      +Host: examplebucket.obs.region.example.com
      +Accept: */*
      +Date: Tue, 08 Jan 2019 09:32:24 +0000
      +Authorization: OBS UDSIAMSTUBTEST000001:ySWncC9M08jNsyXdJLSMJkpi7XM=
      +
      +

      Sample Response

       1
      + 2
      + 3
      + 4
      + 5
      + 6
      + 7
      + 8
      + 9
      +10
      +11
      +12
      +13
      +14
      +15
      +16
      +17
      +18
      +19
      +20
      +21
      +22
      +23
      +24
      +25
      +26
      +27
      +28
      +29
      +30
      +31
      HTTP/1.1 200 OK
      +Server: OBS
      +x-obs-request-id: 000001682CB4C2EE6808A0D8DF9F3D00
      +x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSBjn5O7Jv9CqvUMO0BenehRdil1n8rR
      +Content-Type: application/xml
      +Date: Tue, 08 Jan 2019 09:04:30 GMT
      +Content-Length: 626
      +
      +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      +<InventoryConfiguration  xmlns="http://obs.region.example.com/doc/2015-06-30/">
      +  <Id>id1</Id>
      +  <IsEnabled>true</IsEnabled>
      +  <Destination>
      +    <Format>CSV</Format>
      +    <Bucket>bucket</Bucket>
      +    <Prefix>prefix</Prefix>
      +  </Destination>
      +  <Schedule>
      +    <Frequency>Daily</Frequency>
      +  </Schedule>
      +  <IncludedObjectVersions>Current</IncludedObjectVersions>
      +  <OptionalFields>
      +    <Field>Size</Field>
      +    <Field>LastModifiedDate</Field>
      +    <Field>ETag</Field>
      +    <Field>StorageClass</Field>
      +    <Field>IsMultipartUploaded</Field>
      +    <Field>ReplicationStatus</Field>
      +    <Field>EncryptionStatus</Field>
      +  </OptionalFields>
      +</InventoryConfiguration>
      +
      + +
      +
      +
      +
      + +
      + diff --git a/docs/obs/api-ref/obs_04_0057.html b/docs/obs/api-ref/obs_04_0057.html new file mode 100644 index 00000000..f9273066 --- /dev/null +++ b/docs/obs/api-ref/obs_04_0057.html @@ -0,0 +1,216 @@ + + +

      Listing All Inventories of a Bucket

      +

      Functions

      OBS uses the GET method without inventory IDs to obtain all inventories of a specified bucket. Obtained inventories are returned together on only one page.

      +

      To perform this operation, you must have the GetBucketInventoryConfiguration permission. By default, the bucket owner has this permission and can grant it to others.

      +
      +

      Request Syntax

      1
      +2
      +3
      +4
      +5
      +6
      GET /?inventory HTTP/1.1
      +User-Agent: curl/7.29.0
      +Host: bucketname.obs.region.example.com
      +Accept: */*
      +Date: date
      +Authorization: authorization string
      +
      + +
      +
      +

      Request Parameters

      This request message does not contain the request parameters.

      +
      +

      Request Headers

      This request uses common headers. For details, see Table 3.

      +
      +

      Request Elements

      This request involves no elements.

      +
      +

      Response Syntax

       1
      + 2
      + 3
      + 4
      + 5
      + 6
      + 7
      + 8
      + 9
      +10
      +11
      +12
      +13
      +14
      +15
      +16
      +17
      +18
      +19
      +20
      +21
      +22
      +23
      +24
      +25
      +26
      +27
      +28
      +29
      +30
      +31
      +32
      +33
      HTTP/1.1 status_code
      +Server: OBS
      +x-obs-request-id: request id
      +x-obs-id-2: id
      +Content-Type: application/xml
      +Date: date
      +Content-Length: length
      +
      +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      +<ListInventoryConfiguration  xmlns="http://obs.region.example.com/doc/2015-06-30/">
      + <InventoryConfiguration>
      +  <Id>id</Id>
      +   <IsEnabled>true</IsEnabled>
      +   <Destination>
      +     <Format>CSV</Format>
      +     <Bucket>bucket</Bucket>
      +     <Prefix>prefix</Prefix>
      +   </Destination>
      +   <Schedule>
      +     <Frequency>Daily</Frequency>
      +   </Schedule>
      +   <IncludedObjectVersions>Current</IncludedObjectVersions>
      +   <OptionalFields>
      +     <Field>Size</Field>
      +     <Field>LastModifiedDate</Field>
      +     <Field>ETag</Field>
      +     <Field>StorageClass</Field>
      +     <Field>IsMultipartUploaded</Field>
      +     <Field>ReplicationStatus</Field>
      +     <Field>EncryptionStatus</Field>
      +   </OptionalFields>
      + </InventoryConfiguration>
      +</ListInventoryConfiguration>
      +
      + +
      +
      +

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      +
      +

      Response Elements

      Table 1 lists elements contained in the response body.

      + +
      + + + + + + + + + + +
      Table 1 Bucket inventory configuration elements

      Element

      +

      Description

      +

      ListInventoryConfiguration

      +

      List of bucket inventories.

      +

      Type: container

      +

      InventoryConfiguration

      +

      Bucket inventory configuration. For details about the configuration elements, see Table 2.

      +

      Type: container

      +

      Parent: ListInventoryConfiguration

      +
      +
      +
      +

      Error Responses

      No special error responses are returned. For details about error responses, see Table 2.

      +
      +

      Sample Request

      1
      +2
      +3
      +4
      +5
      +6
      GET /?inventory HTTP/1.1
      +User-Agent: curl/7.29.0
      +Host: examplebucket.obs.region.example.com
      +Accept: */*
      +Date: Tue, 08 Jan 2019 09:32:24 +0000
      +Authorization: OBS UDSIAMSTUBTEST000001:ySWncC9M08jNsyXdJLSMJkpi7XM=
      +
      + +
      +
      +

      Sample Response

       1
      + 2
      + 3
      + 4
      + 5
      + 6
      + 7
      + 8
      + 9
      +10
      +11
      +12
      +13
      +14
      +15
      +16
      +17
      +18
      +19
      +20
      +21
      +22
      +23
      +24
      +25
      +26
      +27
      +28
      +29
      +30
      +31
      +32
      +33
      HTTP/1.1 200 OK
      +Server: OBS
      +x-obs-request-id: 000001682CB4C2EE6808A0D8DF9F3D00
      +x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSBjn5O7Jv9CqvUMO0BenehRdil1n8rR
      +Content-Type: application/xml
      +Date: Tue, 08 Jan 2019 09:04:30 GMT
      +Content-Length: 626
      +
      +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      +<ListInventoryConfiguration  xmlns="http://obs.region.example.com/doc/2015-06-30/"> 
      + <InventoryConfiguration>
      +  <Id>id1</Id>
      +   <IsEnabled>true</IsEnabled>
      +   <Destination>
      +     <Format>CSV</Format>
      +     <Bucket>bucket</Bucket>
      +     <Prefix>prefix</Prefix>
      +   </Destination>
      +   <Schedule>
      +     <Frequency>Daily</Frequency>
      +   </Schedule>
      +   <IncludedObjectVersions>Current</IncludedObjectVersions>
      +   <OptionalFields>
      +     <Field>Size</Field>
      +     <Field>LastModifiedDate</Field>
      +     <Field>ETag</Field>
      +     <Field>StorageClass</Field>
      +     <Field>IsMultipartUploaded</Field>
      +     <Field>ReplicationStatus</Field>
      +     <Field>EncryptionStatus</Field>
      +   </OptionalFields>
      + </InventoryConfiguration>
      +</ListInventoryConfiguration>
      +
      + +
      +
      +
      +
      + +
      + diff --git a/docs/obs/api-ref/obs_04_0058.html b/docs/obs/api-ref/obs_04_0058.html new file mode 100644 index 00000000..530aa8f3 --- /dev/null +++ b/docs/obs/api-ref/obs_04_0058.html @@ -0,0 +1,87 @@ + + +

      Deleting Bucket Inventories

      +

      Functions

      OBS uses the DELETE method to delete inventories (identified by inventory IDs) of a specified bucket.

      +

      To perform this operation, you must have the DeleteBucketInventoryConfiguration permission. By default, the bucket owner has this permission and can grant it to others.

      +
      +

      Request Syntax

      DELETE /?inventory&id=configuration-id HTTP/1.1
      +User-Agent: curl/7.29.0
      +Host: bucketname.obs.region.example.com
      +Accept: */*
      +Date: date
      +Authorization: authorization string
      +
      +

      Request Parameters

      +
      + + + + + + + + + +
      Table 1 Request parameters

      Parameter

      +

      Description

      +

      Mandatory

      +

      id

      +

      ID of the inventory to be deleted.

      +

      Type: string

      +

      Specifications: A maximum of 64 characters

      +

      There is no default value.

      +

      Valid characters: letters, digits, hyphens (-), periods (.) and underscores (_)

      +

      Yes

      +
      +
      +
      +

      Request Headers

      This request uses common headers. For details, see Table 3.

      +
      +

      Request Elements

      This request involves no elements.

      +
      +

      Response Syntax

      1
      +2
      +3
      +4
      +5
      HTTP/1.1 status_code
      +Server: OBS
      +x-obs-request-id: request id
      +x-obs-id-2: id
      +Date: date
      +
      + +
      +
      +

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      +
      +

      Response Elements

      This response contains no elements.

      +
      +

      Error Responses

      No special error responses are returned. For details about error responses, see Table 2.

      +
      +

      Sample Request

      DELETE /test?inventory&id=id1 HTTP/1.1
      +User-Agent: curl/7.29.0
      +Host: examplebucket.obs.region.example.com
      +Accept: */*
      +Date: Tue, 08 Jan 2019 13:18:35 +0000
      +Authorization: OBS UDSIAMSTUBTEST000001:UT9F2YUgaFu9uFGMmxFj2CBgQHs=
      +
      +

      Sample Response

      1
      +2
      +3
      +4
      +5
      HTTP/1.1 204 No Content
      +Server: OBS
      +x-obs-request-id: 000001682D993B666808E265A3F6361D
      +x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSyB46jGSQsu06m1nyIeKxTuJ+H27ooC
      +Date: Tue, 08 Jan 2019 13:14:03 GMT
      +
      + +
      +
      +
      +
      + +
      + diff --git a/docs/obs/api-ref/obs_04_0060.html b/docs/obs/api-ref/obs_04_0060.html index ea7b5cb5..5b991292 100644 --- a/docs/obs/api-ref/obs_04_0060.html +++ b/docs/obs/api-ref/obs_04_0060.html @@ -71,32 +71,32 @@ Content-Length: 272

      Container of the returned result

      Type: container

      -

      Children: Domains

      -

      Ancestor: none

      +

      Child: Domains

      +

      Parent: none

      Domains

      Element indicating the custom domain name

      Type: container

      -

      Children: DomainName, CreateTime

      -

      Ancestor: ListBucketCustomDomainsResult

      +

      Child: DomainName and CreateTime

      +

      Parent: ListBucketCustomDomainsResult

      DomainName

      Custom domain name

      Type: string

      -

      Children: none

      -

      Ancestor: Domains

      +

      Child: none

      +

      Parent: Domains

      CreateTime

      Time when a custom domain name is created

      Type: string, which must be a UTC time.

      -

      Children: none

      -

      Ancestor: Domains

      +

      Child: none

      +

      Parent: Domains

      Root element of the default encryption configuration of a bucket.

      Type: container

      -

      Ancestor: none

      -

      Children: Rule

      +

      Parent: none

      +

      Child: Rule

      Yes

      Sub-element of the default encryption configuration of a bucket.

      Type: container

      -

      Ancestor: ServerSideEncryptionConfiguration

      -

      Children: ApplyServerSideEncryptionByDefault

      +

      Parent: ServerSideEncryptionConfiguration

      +

      Child: ApplyServerSideEncryptionByDefault

      Yes

      Sub-element of the default encryption configuration of a bucket.

      Type: container

      -

      Ancestor: Rule

      -

      Children: SSEAlgorithm, KMSMasterKeyID

      +

      Parent: Rule

      +

      Child: SSEAlgorithm and KMSMasterKeyID

      Yes

      Server-side encryption algorithm used for the default encryption configuration of a bucket.

      Type: string

      Value options: kms

      -

      Ancestor: ApplyServerSideEncryptionByDefault

      +

      Parent: ApplyServerSideEncryptionByDefault

      Yes

      No

      Root element of the default encryption configuration of a bucket.

      Type: container

      -

      Ancestor: none

      -

      Children: Rule

      +

      Parent: none

      +

      Child: Rule

      Rule

      Sub-element of the default encryption configuration of a bucket.

      Type: container

      -

      Ancestor: ServerSideEncryptionConfiguration

      -

      Children: ApplyServerSideEncryptionByDefault

      +

      Parent: ServerSideEncryptionConfiguration

      +

      Child: ApplyServerSideEncryptionByDefault

      ApplyServerSideEncryptionByDefault

      Sub-element of the default encryption configuration of a bucket.

      Type: container

      -

      Ancestor: Rule

      -

      Children: SSEAlgorithm, KMSMasterKeyID

      +

      Parent: Rule

      +

      Child: SSEAlgorithm and KMSMasterKeyID

      SSEAlgorithm

      @@ -101,21 +101,21 @@ Date: date

      The server-side encryption algorithm used for encryption configuration of a bucket.

      Type: string

      Value options: kms

      -

      Ancestor: ApplyServerSideEncryptionByDefault

      +

      Parent: ApplyServerSideEncryptionByDefault

      KMSMasterKeyID

      ID of the customer master key (CMK) used for SSE-KMS.

      Type: string

      -

      Ancestor: ApplyServerSideEncryptionByDefault

      +

      Parent: ApplyServerSideEncryptionByDefault

      ProjectID

      ID of the project where the KMS master key belongs when SSE-KMS is used.

      Type: string

      -

      Ancestor: ApplyServerSideEncryptionByDefault

      +

      Parent: ApplyServerSideEncryptionByDefault

      NOTE:

      When a custom key in a non-default IAM project is used to encrypt objects, only the key owner can upload or download the encrypted objects.

      RequestPaymentConfiguration

      Root node of the requester-pays configuration.

      -

      Ancestor: none

      +

      Parent: none

      Yes

      Specifies who pays for accessing resources in the bucket.

      Type: string

      -

      Ancestor: RequestPaymentConfiguration

      +

      Parent: RequestPaymentConfiguration

      Value options:

      • BucketOwner: The bucket owner pays all fees associated with the bucket.
      • Requester: The requester pays for data transfer and API calls associated with accessing resources in the bucket, while the bucket owner pays for data storage in the bucket.

      Identifier of who pays for the bucket.

      Type: string

      -

      Ancestor: RequestPaymentConfiguration

      +

      Parent: RequestPaymentConfiguration

      Value options:

      • BucketOwner: The bucket owner pays all fees associated with the bucket.
      • Requester: The requester pays for data transfer and API calls associated with accessing resources in the bucket, while the bucket owner pays for data storage in the bucket.

      Root node configured on the website

      Type: container

      -

      Ancestor: none

      +

      Parent: none

      Yes

      Describes the redirection behavior for every request to this bucket's website endpoint. If this element is present, no other siblings are allowed.

      Type: container

      -

      Ancestor: WebsiteConfiguration

      +

      Parent: WebsiteConfiguration

      Yes

      Name of the host where requests will be redirected

      Type: string

      -

      Ancestor: RedirectAllRequestsTo

      +

      Parent: RedirectAllRequestsTo

      Yes

      The HTTP or HTTPS protocol used in redirecting requests. The default protocol is HTTP.

      Type: string

      -

      Ancestor: RedirectAllRequestsTo

      +

      Parent: RedirectAllRequestsTo

      No

      Root element for the website configuration

      Type: container

      -

      Ancestor: none

      +

      Parent: none

      Yes

      Suff element

      Type: container

      -

      Ancestor: WebsiteConfiguration

      +

      Parent: WebsiteConfiguration

      Yes

      Suffix that is appended to a request initiated for a directory on the website endpoint. For example, if the suffix is index.html and you request for samplebucket/images/, the data that is returned will be for the object with the key name images/index.html in the samplebucket bucket. Suffix cannot be empty or contain slashes (/).

      Type: string

      -

      Ancestor: IndexDocument

      +

      Parent: IndexDocument

      Yes

      Key element

      Type: container

      -

      Ancestor: WebsiteConfiguration

      +

      Parent: WebsiteConfiguration

      No

      Object key that is used when a 4XX error occurs. This element identifies the page that is returned when a 4XX error occurs.

      Type: string

      -

      Ancestor: ErrorDocument

      +

      Parent: ErrorDocument

      Condition: Required when ErrorDocument is specified.

      No

      @@ -145,7 +145,7 @@ Authorization: authorization

      Routing element

      Type: container

      -

      Ancestor: WebsiteConfiguration

      +

      Parent: WebsiteConfiguration

      No

      Element of a redirection rule. A redirection rule contains a Condition and a Redirect. When the Condition is matched, Redirect takes effect.

      Type: container

      -

      Ancestor: RoutingRules

      +

      Parent: RoutingRules

      At least the RoutingRule element is required.

      Yes

      @@ -164,7 +164,7 @@ Authorization: authorization

      Element for describing a condition that must be met for the specified redirection to apply.

      Type: container

      -

      Ancestor: RoutingRule

      +

      Parent: RoutingRule

      No

      No

      @@ -187,7 +187,7 @@ Authorization: authorization

      Example:

      • If you want to redirect requests to NotFound.html when HTTP error code 404 is returned, set HttpErrorCodeReturnedEquals to 404 in Condition, and set ReplaceKeyWith to NotFound.html in Redirect.

      Type: string

      -

      Ancestor: Condition

      +

      Parent: Condition

      Condition: Required when ancestor element Condition is specified and sibling KeyPrefixEquals is not specified. If multiple conditions are specified, the Redirect takes effect only after all conditions are met.

      No

      @@ -197,7 +197,7 @@ Authorization: authorization

      Element for redirection information. You can redirect requests to another host, to another web page, or with another protocol. You can specify an error code to be returned after an error.

      Type: container

      -

      Ancestor: RoutingRule

      +

      Parent: RoutingRule

      Yes

      Protocol used in the redirection request

      Type: string

      -

      Ancestor: Redirect

      +

      Parent: Redirect

      Value options: http, https

      Condition: Not required if one of the siblings is present.

      Host name used in the redirection request.

      Type: string

      -

      Ancestor: Redirect

      +

      Parent: Redirect

      Condition: Not required if one of the siblings is present.

      No

      @@ -225,11 +225,11 @@ Authorization: authorization

      ReplaceKeyPrefixWith

      Object key prefix used in the redirection request.

      -

      Example:

      -
      • To redirect all requests for (objects under) docs to (objects under) documents, set KeyPrefixEquals to docs in Condition and ReplaceKeyPrefixWith to documents in Redirect.
      +

      The object name prefix used in the redirection request. OBS replaces the value of KeyPrefixEquals with the value you specified here for ReplaceKeyPrefixWith.

      +

      Example:

      +

      To redirect all requests for docs (objects in the docs directory) to documents (objects in the documents directory), set KeyPrefixEquals to docs under Condition and ReplaceKeyPrefixWith to documents under Redirect. This way, requests for object docs/a.html will be redirected to documents/a.html.

      Type: string

      -

      Ancestor: Redirect

      +

      Parent: Redirect

      Condition: Not required if one of the siblings is present. Can be present only if ReplaceKeyWith is not provided.

      No

      @@ -237,9 +237,11 @@ Authorization: authorization

      ReplaceKeyWith

      Object key used in the redirection request. For example, redirect requests to error.html.

      +

      The object name used in the redirection request. OBS replaces the entire object name in the request with the value you specified here for ReplaceKeyWith.

      +

      Example:

      +

      To redirect requests for all objects in the docs directory to documents/error.html, set KeyPrefixEquals to docs under Condition and ReplaceKeyWith to documents/error.html under Redirect. This way, requests for both objects docs/a.html and docs/b.html will be redirected to documents/error.html.

      Type: string

      -

      Ancestor: Redirect

      +

      Parent: Redirect

      Condition: Not required if one of the siblings is present. Can be present only if ReplaceKeyPrefixWith is not provided.

      No

      @@ -249,7 +251,7 @@ Authorization: authorization

      HTTP status code returned after the redirection request

      Type: string

      -

      Ancestor: Redirect

      +

      Parent: Redirect

      Condition: Not required if one of the siblings is present.

      No

      @@ -275,7 +277,7 @@ Content-Length: length

      Error Responses

      No special error responses are returned. For details about error responses, see Table 2.

      -

      Sample Request

       1
      +

      Sample Request: Redirecting All Requests for a Bucket to Another Bucket or URL

       1
        2
        3
        4
      @@ -304,7 +306,7 @@ Content-Length: 194
       
       
      -

      Sample Response

      1
      +

      Sample Response: Redirecting All Requests for a Bucket to Another Bucket or URL

      1
       2
       3
       4
      diff --git a/docs/obs/api-ref/obs_04_0074.html b/docs/obs/api-ref/obs_04_0074.html
      index 2f8424f8..b7ccbadf 100644
      --- a/docs/obs/api-ref/obs_04_0074.html
      +++ b/docs/obs/api-ref/obs_04_0074.html
      @@ -44,7 +44,7 @@ Content-MD5: MD5
       
       
      -

      Request Parameters

      This request contains no message parameters.

      +

      Request Parameters

      This request contains no parameters.

      Request Headers

      This request uses common headers and CORS request headers. For details, see Table 3 and Table 1.

      @@ -69,7 +69,7 @@ Content-MD5: MD5
      -

      Request Elements

      In this request, you must configure the CORS of buckets in the request body. The lifecycle configuration is specified as XML with elements described in Table 2.

      +

      Request Elements

      In this request body, you must configure the CORS rules for a bucket in XML format. Table 2 describes the specific configuration elements.

      @@ -83,7 +83,7 @@ Content-MD5: MD5 @@ -92,7 +92,7 @@ Content-MD5: MD5 @@ -101,7 +101,7 @@ Content-MD5: MD5 @@ -111,35 +111,35 @@ Content-MD5: MD5 - - - @@ -148,7 +148,7 @@ Content-MD5: MD5 diff --git a/docs/obs/api-ref/obs_04_0075.html b/docs/obs/api-ref/obs_04_0075.html index 75a0206d..73089af4 100644 --- a/docs/obs/api-ref/obs_04_0075.html +++ b/docs/obs/api-ref/obs_04_0075.html @@ -60,21 +60,21 @@ Content-Length: length diff --git a/docs/obs/api-ref/obs_04_0079.html b/docs/obs/api-ref/obs_04_0079.html index c727c32d..3ff57e08 100644 --- a/docs/obs/api-ref/obs_04_0079.html +++ b/docs/obs/api-ref/obs_04_0079.html @@ -4,13 +4,13 @@
      Table 2 CORS configuration elements

      Element

      Root node of CORSRule and its capacity cannot exceed 64 KB.

      Type: container

      -

      Ancestor: none

      +

      Parent: none

      Yes

      CORS rules. CORSConfiguration can contain a maximum of 100 rules.

      Type: container

      -

      Ancestor: CORSConfiguration

      +

      Parent: CORSConfiguration

      Yes

      Unique identifier of a rule. The value can contain a maximum of 255 characters.

      Type: string

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      No

      Method allowed by a CORS rule

      Type: string

      Value options: GET, PUT, HEAD, POST, DELETE

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      Yes

      AllowedOrigin

      An origin that is allowed by a CORS rule. It is a character string and can contain a wildcard (*), and allows one wildcard character (*) at most.

      +

      Origins that are allowed in the CORS rule. Only English domain names are supported for configuring origins, and regular expressions can be used for matching origins. Each AllowedOrigin allows one wildcard character (*) at most.

      Type: string

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      Yes

      AllowedHeader

      Headers that are allowed in a PutBucketCORS request via the Access-Control-Request-Headers header. If a request contains Access-Control-Request- Headers, only a CORS request that matches the configuration of AllowedHeader is considered as a valid request. Each AllowedHeader can contain at most one wildcard (*) and cannot contain spaces.

      +

      Headers that are allowed in a PutBucketCORS request via the Access-Control-Request-Headers header. If a CORS request contains Access-Control-Request-Headers, this request is considered valid only when it matches the configuration of AllowedHeader. The match is based on regular expressions. Each AllowedHeader can contain at most one wildcard (*) and cannot contain spaces.

      Type: string

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      No

      MaxAgeSeconds

      Indicates the response time of CORS that can be cached by a client. It is expressed in seconds.

      +

      The time in seconds that the client can cache CORS responses.

      Each CORSRule can contain only one MaxAgeSeconds. It can be set to a negative value.

      Type: integer

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      No

      An additional header in CORS responses. The header provides additional information for clients. It cannot contain spaces.

      Type: string

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      No

      Root node of CORSRules and its capacity cannot exceed 64 KB.

      Type: container

      -

      Ancestor: none

      +

      Parent: none

      CORSRule

      CORS rule. CORSConfiguration can contain a maximum of 100 rules.

      Type: container

      -

      Ancestor: CORSConfiguration

      +

      Parent: CORSConfiguration

      ID

      Unique identifier of a rule. The value can contain a maximum of 255 characters.

      Type: string

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      AllowedMethod

      @@ -82,21 +82,21 @@ Content-Length: length

      Method allowed by a CORS rule.

      Type: string

      Value options: GET, PUT, HEAD, POST, DELETE

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      AllowedOrigin

      Indicates an origin that is allowed by a CORS rule. It is a character string and can contain a wildcard (*), and allows one wildcard character (*) at most.

      Type: string

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      AllowedHeader

      Indicates which headers are allowed in a PUT Bucket CORS request via the Access-Control-Request-Headers header. If a request contains Access-Control-Request- Headers, only a CORS request that matches the configuration of AllowedHeader is considered as a valid request. Each AllowedHeader can contain at most one wildcard (*) and cannot contain spaces.

      Type: string

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      MaxAgeSeconds

      @@ -104,14 +104,14 @@ Content-Length: length

      Response time of CORS that can be cached by a client. It is expressed in seconds.

      Each CORSRule can contain only one MaxAgeSeconds. It can be set to a negative value.

      Type: integer

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      ExposeHeader

      Indicates a supplemented header in CORS responses. The header provides additional information for clients. It cannot contain spaces.

      Type: string

      -

      Ancestor: CORSRule

      +

      Parent: CORSRule

      - @@ -252,7 +250,7 @@ Content-Type: type

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      -

      In addition to the common response headers, the message headers listed in Table 2 may be used.

      +

      In addition to the common response headers, the headers listed in Table 2 may be used.

      1
       2
      @@ -156,15 +155,14 @@ Date: date
       

      x-obs-server-side-encryption-kms-key-id

      Indicates the master key when SSE-KMS is used. If this header is not provided, the default master key will be used. If there is no such a default master key, OBS will create one and use it by default.

      -

      Type: string

      -

      The following two formats are supported:

      -

      - regionID:domainID:key/key_id

      -

      - key_id

      -

      regionID indicates the ID of the region where the key belongs. domainID indicates the ID of the tenant where the key belongs. key_id indicates the ID of the key created in KMS.

      -

      Example:

      -

      - x-obs-server-side-encryption-kms-key-id: region:domainiddomainiddomainiddoma0001: key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

      -

      - x-obs-server-side-encryption-kms-key-id: 4f1cd4de-ab64-4807-920a-47fc42e7f0d0

      +

      Explanation:

      +

      The key used to encrypt objects. This header can be specified using either of the following formats:

      +

      1. regionID:domainID:key/key_id: regionID indicates the ID of the region where the key belongs. domainID indicates the ID of the tenant where the key belongs. key_id indicates the ID of the key created in KMS on the DEW console. An example is given as follows: x-obs-server-side-encryption-kms-key-id: region:exampledomainid: key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0.

      +

      2. key_id: It indicates the ID of the key created in KMS on the DEW console. An example is given as follows: x-obs-server-side-encryption-kms-key-id: 4f1cd4de-ab64-4807-920a-47fc42e7f0d0.

      +

      Restrictions:

      +

      This header can be used only when you set the x-obs-server-side-encryption header to kms.

      +

      Default value:

      +

      If you choose the KMS encryption but do not specify this header, the default master key will be used. If there is no such a default master key, OBS will create one and use it by default.

      No

      @@ -298,7 +296,7 @@ Content-Type: type - diff --git a/docs/obs/api-ref/obs_04_0081.html b/docs/obs/api-ref/obs_04_0081.html index d049e95a..9a51050f 100644 --- a/docs/obs/api-ref/obs_04_0081.html +++ b/docs/obs/api-ref/obs_04_0081.html @@ -1,6 +1,6 @@ -

      Uploading Objects - POST

      +

      Uploading an Object - POST

      Functions

      This operation uploads an object to a bucket. To use this operation, you must have the write permission for the bucket.

      The name of each object in a bucket must be unique.

      @@ -13,7 +13,7 @@

      With the PUT method, you need to specify the object name in the URL, but object name is not required with the POST method, 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
      -

      For details about PUT upload, see Uploading Objects - PUT.

      +

      For details about PUT upload, see Uploading an Object - PUT.

      Versioning

      If versioning is enabled for a bucket, the system automatically generates a unique version ID for the requested object in this bucket and returns the version ID in response header x-obs-version-id. If versioning is suspended for a bucket, the version ID of the requested object in this bucket is null. For details about the versioning statuses of a bucket, see Configuring Versioning for a Bucket.

      @@ -456,7 +456,7 @@ ETag: etag

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      -

      In addition to the common response headers, the message headers listed in Table 3 may be used.

      +

      In addition to the common response headers, the headers listed in Table 3 may be used.

      Table 2 Additional response headers

      Header

      x-obs-storage-class

      This header is returned when the storage class of an object is not Standard. The value can be WARM or COLD.

      +

      This header is returned when the storage class of an object is not Standard. The value can be WARM or COLD.

      Type: string

      @@ -926,7 +926,7 @@ Content-Disposition: form-data; name="key" object01 --148828969260233905620870 -Content-Disposition: form-data; name="AwsAccessKeyId" +Content-Disposition: form-data; name="ObsAccessKeyId" 55445349414d5354554254455354303030303033 --148828969260233905620870 @@ -981,7 +981,7 @@ Content-Disposition: form-data; name="key" obj ----------------------------285613759795901770404350 -Content-Disposition: form-data; name="AwsAccessKeyId" +Content-Disposition: form-data; name="ObsAccessKeyId" XXXXXXXXXXXXXXX000003 ----------------------------285613759795901770404350 @@ -1020,7 +1020,7 @@ x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCScDjcXgZ7oMYSVnZnk4+HrClVwLVPTi x-forward-status: 0x40020000000001 x-dae-api-type: REST.POST.OBJECT -

      Sample Request: Configuring a WORM Retention Policy When Uploading an Object

      POST /srcbucket HTTP/1.1
      +

      Sample Request: Uploading an Object (with a WORM Retention Policy Configured)

      POST /srcbucket HTTP/1.1
       User-Agent: PostmanRuntime/7.26.8
       Accept: */*
       Postman-Token: 4c2f4c7e-2e0b-46c0-b1a7-4a5da560b6a1
      @@ -1035,7 +1035,7 @@ Content-Disposition: form-data; name="key"
        
       obj
       ----------------------------940435396775653808840608
      -Content-Disposition: form-data; name="AwsAccessKeyId"
      +Content-Disposition: form-data; name="ObsAccessKeyId"
        
       XXXXXXXXXXXXXXX000003
       ----------------------------940435396775653808840608
      @@ -1065,7 +1065,7 @@ Content-Disposition: form-data; name="submit"
       Upload to OBS
       ----------------------------940435396775653808840608--
      -

      Sample Response: Configuring a WORM Retention Policy When Uploading an Object

      HTTP/1.1 204 No Content
      +

      Sample Response: Uploading an Object (with a WORM Retention Policy Configured)

      HTTP/1.1 204 No Content
       Server: OBS
       Date: Thu, 15 Jun 2023 13:24:03 GMT
       Connection: keep-alive
      diff --git a/docs/obs/api-ref/obs_04_0082.html b/docs/obs/api-ref/obs_04_0082.html
      index 0cb8877e..4103ae2e 100644
      --- a/docs/obs/api-ref/obs_04_0082.html
      +++ b/docs/obs/api-ref/obs_04_0082.html
      @@ -1,17 +1,18 @@
       
       
      -

      Copying Objects

      +

      Copying an Object

      Functions

      You can perform this operation to create a copy of an existing object in OBS.

      Users can determine whether to copy the metadata of the source object to the target object (by default) or replace the metadata of the target object with the metadata contained in the request. The ACL of the source object is not copied to the target object. By default, the ACL of the target object is private. You can set an ACL for the target object by sending an API request.

      The request for copying an object needs to carry the information about the bucket and object to be copied in the header field. The message body cannot be carried.

      This operation supports server-side encryption.

      An object copy can be up to 5 GB in size. If the source object size exceeds 5 GB, you can only copy part of the object.

      +

      You cannot determine whether a request is executed successfully only using status_code in the header returned by HTTP. If 200 in status_code is returned, the server has received the request and starts to process the request. The body in the response shows whether the copy succeeds. If the body contains ETag, the copy succeeds. Otherwise, the copy failed.

      +
      -

      Versioning

      By default, x-obs-copy-source specifies the latest version of the source object. If the latest version of the source object has a deletion marker, the object is considered to have been deleted. You can add versionId to request header x-obs-copy-source to copy an object with the specified version ID.

      +

      Versioning

      By default, x-obs-copy-source specifies the latest version of the source object. If the latest version of the source object is a delete marker, the object is considered deleted. You can add versionId to request header x-obs-copy-source to copy an object with the specified version ID.

      If a bucket has versioning enabled, the system automatically generates a unique version ID for the requested object in this bucket and returns the version ID in response header x-obs-version-id. If versioning is suspended for the bucket, the object version ID is null.

      When the bucket versioning status is disabled, if you make a copy of object_A and save it as object_B, and an object named as object_B already exists, the new object_B will overwrite the existing one. After the copying is executed successfully, only new object_B can be downloaded because old object_B has been deleted. Therefore, before copying an object, ensure that there is no object with the same name as the object copy to prevent data from being deleted mistakenly. During the copying, object_A has no changes.

      -

      You cannot determine whether a request is executed successfully only using status_code in the header returned by HTTP. If 200 in status_code is returned, the server has received the request and starts to process the request. The body in the response shows whether the copy succeeds. If the body contains ETag, the copy succeeds. Otherwise, the copy failed.

      WORM

      If a bucket has WORM enabled, you can configure retention policies for objects in the bucket. You can specify the x-obs-object-lock-mode and x-obs-object-lock-retain-until-date headers to configure a retention policy when you copy an object. If you do not specify these two headers but have configured a default bucket-level WORM policy, this default policy automatically applies to the object newly copied. You can also configure or update a WORM retention policy after an object is copied to the bucket.

      In a copy operation, the object protection status is not copied, so the protection status of an object copy is independent of that of the source object. After the copy is complete, WORM retention changes made on the source object does not affect the object copy.

      @@ -44,7 +45,7 @@ Date: date
      -

      Request Parameters

      This request contains no message parameters.

      +

      Request Parameters

      This request contains no parameters.

      Request Headers

      You can add optional headers to specify the object to be copied. Table 3 describes the optional headers.

      @@ -58,7 +59,7 @@ Date: date
      - @@ -107,7 +108,7 @@ Date: date - - -
      Table 3 Additional response headers

      Header

      x-obs-acl

      This header can be added to set access control policies for objects when copying the objects. The access control policies are the predefined common policies, including private, public-read, public-read-write.

      +

      When copying an object, you can add this header to configure the object ACL using the predefined common policies, including private, public-read, and public-read-write.

      Type: string

      Example: x-obs-acl: acl

      Yes

      x-obs-metadata- directive

      +

      x-obs-metadata-directive

      Indicates whether the metadata of the target object is copied from the source object or replaced with the metadata contained in the request.

      Type: string

      @@ -121,17 +122,17 @@ Date: date

      x-obs-copy-source-if-match

      Copies the source object only if its ETag matches the one specified by this header. Otherwise, a 412 HTTP status code error (failed precondition) is returned.

      +

      Indicates that the source object is copied only if its ETag matches the one specified in this header. Otherwise, a 412 status code (failed precondition) is returned.

      Type: string

      Example: x-obs-copy-source-if-match: etag

      -

      Constraint: This parameter can be used with x-obs-copy-source-if-unmodified-since but not other conditional copy parameters.

      +

      Constraint: This header can be used with x-obs-copy-source-if-unmodified-since but not other conditional copy headers.

      No

      x-obs-copy-source-if-none-match

      Copies the object only if its ETag does not match the one specified in this header. Otherwise, a 412 HTTP status code error (failed precondition) is returned.

      +

      Indicates that the source object is copied only if its ETag does not match the one specified in this header. Otherwise, a 412 status code (failed precondition) is returned.

      Type: string

      Example: x-obs-copy-source-if-none-match: etag

      Constraint: This parameter can be used with x-obs-copy-source-if-modified-since but not other conditional copy parameters.

      @@ -144,9 +145,9 @@ Date: date

      Indicates that the source object is copied only if it has not been modified since the time specified by this header. Otherwise, error code 412 (failed precondition) is returned. This header can be used with x-obs-copy-source-if-match, but cannot be used with other conditional copy headers.

      Type: string

      Format: HTTP time string complying with the format specified at http://www.ietf.org/rfc/rfc2616.txt, which can be any of the following:

      -
      1. EEE, dd MMM yyyy HH:mm:ss z
      2. EEEE, dd-MMM-yy HH:mm:ss z
      3. EEE MMM dd HH:mm:ss yyyy
      +
      1. EEE, dd MMM yyyy HH:mm:ss z
      2. EEEE, dd-MMM-yy HH:mm:ss z
      3. EEE MMM dd HH:mm:ss yyyy

      Examples:

      -
      1. x-obs-copy-source-if-unmodified-since: Sun, 06 Nov 1994 08:49:37 GMT
      2. x-obs-copy-source-if-unmodified-since: Sunday, 06-Nov-94 08:49:37 GMT
      3. x-obs-copy-source-if-unmodified-since: Sun Nov 6 08:49:37 1994
      +
      1. x-obs-copy-source-if-unmodified-since: Sun, 06 Nov 1994 08:49:37 GMT
      2. x-obs-copy-source-if-unmodified-since: Sunday, 06-Nov-94 08:49:37 GMT
      3. x-obs-copy-source-if-unmodified-since: Sun Nov 6 08:49:37 1994

      Constraint: The time specified by this header cannot be later than the current server time (GMT time), or this header does not take effect.

      No

      @@ -157,9 +158,9 @@ Date: date

      Indicates that the source object is copied only if it has been modified since the time specified by this header. Otherwise, error code 412 (failed precondition) is returned. This header can be used with x-obs-copy-source-if-none-match, but cannot be used with other conditional copy headers.

      Type: string

      Format: HTTP time string complying with the format specified at http://www.ietf.org/rfc/rfc2616.txt, which can be any of the following:

      -
      1. EEE, dd MMM yyyy HH:mm:ss z
      2. EEEE, dd-MMM-yy HH:mm:ss z
      3. EEE MMM dd HH:mm:ss yyyy
      +
      1. EEE, dd MMM yyyy HH:mm:ss z
      2. EEEE, dd-MMM-yy HH:mm:ss z
      3. EEE MMM dd HH:mm:ss yyyy

      Examples:

      -
      1. x-obs-copy-source-if-unmodified-since: Sun, 06 Nov 1994 08:49:37 GMT
      2. x-obs-copy-source-if-unmodified-since: Sunday, 06-Nov-94 08:49:37 GMT
      3. x-obs-copy-source-if-unmodified-since: Sun Nov 6 08:49:37 1994
      +
      1. x-obs-copy-source-if-unmodified-since: Sun, 06 Nov 1994 08:49:37 GMT
      2. x-obs-copy-source-if-unmodified-since: Sunday, 06-Nov-94 08:49:37 GMT
      3. x-obs-copy-source-if-unmodified-since: Sun Nov 6 08:49:37 1994

      Constraint: The time specified by this header cannot be later than the current server time (GMT time), or this header does not take effect.

      No

      @@ -327,7 +328,7 @@ Content-Length: length

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      -

      In addition to the common response headers, the message headers listed in Table 2 may be used.

      +

      In addition to the common response headers, the headers listed in Table 2 may be used.

      @@ -379,7 +380,7 @@ Content-Length: length - diff --git a/docs/obs/api-ref/obs_04_0083.html b/docs/obs/api-ref/obs_04_0083.html index fa5f3459..00163538 100644 --- a/docs/obs/api-ref/obs_04_0083.html +++ b/docs/obs/api-ref/obs_04_0083.html @@ -1,11 +1,11 @@ -

      Downloading Objects

      -

      Functions

      This operation downloads objects from OBS. Before using this GET operation, check that you have the read permission for the target object. If the object owner has granted anonymous users the read permission for the object, anonymous users can access this object without using the authentication header field.

      +

      Downloading an Object

      +

      Functions

      This operation downloads an object from OBS. Before using this GET operation, check that you have the read permission for the target object. If the object owner has granted anonymous users the read permission for the object, anonymous users can access this object without using the authentication header field.

      Server-Side Encryption

      If the object uploaded to the server is encrypted on the server using the encryption key provided by the client, downloading the object requires including the encryption key in the message.

      -

      Versioning

      By default, the GET operation returns the current version of an object. If the current version of the object is a deletion marker, OBS returns a code meaning non-existence of the object. To obtain an object of a specified version, the versionId parameter can be used to specify the desired version.

      +

      Versioning

      By default, the GET operation returns the current version of an object. If the current version of the object is a delete marker, OBS returns a code meaning that the object does not exist. To obtain an object of a specified version, the versionId parameter can be used to specify the desired version.

      Cold Objects

      If the object you want to download is in the Cold storage class, ensure that this object has been restored before you download it. The response varies depending on the object's restore state. If an object has been restored, the x-obs-restore header (indicating the expiry date of the object) is returned when the object is successfully downloaded. If you send a request to download Cold objects that are not restored or are being restored, a 403 Forbidden error will be returned.

      @@ -100,7 +100,7 @@ Range:bytes=byte_range
      -
      Table 2 Additional response headers

      Header

      x-obs-storage-class

      This header is returned when the storage class of an object is not Standard. The value can be WARM or COLD.

      +

      This header is returned when the storage class of an object is not Standard. The value can be WARM or COLD.

      Type: string

      attname

      Rewrites the Content-Disposition header in the response.

      +

      Rewrites the Content-Disposition header in the response.

      Type: string

      Example:

      attname=name1

      @@ -227,7 +227,7 @@ Last-Modified: time

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      -

      In addition to the common response headers, the message headers listed in Table 3 may be used.

      +

      In addition to the common response headers, the headers listed in Table 3 may be used.

      @@ -249,7 +249,7 @@ Last-Modified: time - @@ -271,7 +271,7 @@ Last-Modified: time -
      Table 3 Additional response headers

      Header

      x-obs-delete-marker

      Indicates whether an object is a deletion marker. If the object is not marked as deleted, the response does not contain this header.

      +

      Indicates whether an object is a delete marker. If the object is not marked as deleted, the response does not contain this header.

      Type: boolean

      Value options: true, false

      The default value is false.

      @@ -258,7 +258,7 @@ Last-Modified: time

      x-obs-version-id

      Object version ID. If the object has no version number specified, the response does not contain this header.

      -

      Valid value: character string

      +

      Valid value: string

      Default value: none

      x-obs-server-side-encryption-kms-key-id

      Indicates the master key ID. This header is included in a response if SSE-KMS is used.

      +

      Indicates the master key ID. This header is included in a response when SSE-KMS is used.

      Type: string

      Format: regionID:domainID:key/key_id

      regionID indicates the ID of the region where the key belongs. domainID indicates the ID of the tenant where the key belongs. key_id indicates the key ID used in this encryption.

      diff --git a/docs/obs/api-ref/obs_04_0084.html b/docs/obs/api-ref/obs_04_0084.html index 559f6109..76de5349 100644 --- a/docs/obs/api-ref/obs_04_0084.html +++ b/docs/obs/api-ref/obs_04_0084.html @@ -118,7 +118,7 @@ Last-Modified: time

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      -

      In addition to the common response headers, the message headers listed in Table 3 may be used.

      +

      In addition to the common response headers, the headers listed in Table 3 may be used.

      @@ -185,7 +185,7 @@ Last-Modified: time - @@ -114,6 +115,32 @@ Date: WED, 01 +

      Sample Request: Specifying versionId to Delete a Specific Object Version

      DELETE /object2?versionId=G001118A49821905FFFFD28739D419DA HTTP/1.1
      +Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
      +User-Agent: curl/7.29.0
      +Host: examplebucket.obs.region.example.com
      +Date: WED, 01 Jul 2015 02:37:22 GMT
      +Content-Type: application/xml
      +
      +

      Sample Response: Specifying versionId to Delete a Specific Object Version

      x-obs-id-2: 32AAAUgAIAABAAAQAAEAABAAAQAAEAABCS3WJqDiMsxgGHKQrlqST9veFKpDgE50
      +x-obs-request-id: 0000018A4997390DD306CCDA0DEC814F
      +Server: OBS
      +Date: WED, 01 Jul 2015 02:37:22 GMT
      +x-obs-version-id: G001118A49821905FFFFD28739D419DA
      +
      +

      Sample Request: Specifying versionId to Delete a Delete Marker

      DELETE /object2?versionId=G001118A6456208AFFFFD24829FCF614
      +Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
      +User-Agent: curl/7.29.0
      +Host: examplebucket.obs.region.example.com
      +Date: WED, 01 Jul 2015 02:37:22 GMT
      +Content-Type: application/xml
      +
      +

      Sample Response: Specifying versionId to Delete a Delete Marker

      x-obs-id-2: 32AAAUgAIAABAAAQAAEAABAAAQAAEAABCS3WJqDiMsxgGHKQrlqST9veFKpDgE50
      +x-obs-request-id: 0000018A4997390DD306CCDA0DEC814F
      +Server: OBS
      +Date: WED, 01 Jul 2015 02:37:22 GMT
      +x-obs-version-id: G001118A6456208AFFFFD24829FCF614
      +
      - - - diff --git a/docs/obs/api-ref/obs_04_0089.html b/docs/obs/api-ref/obs_04_0089.html index 8b16fd04..097c82ce 100644 --- a/docs/obs/api-ref/obs_04_0089.html +++ b/docs/obs/api-ref/obs_04_0089.html @@ -163,7 +163,7 @@ Content-Type: application/xml

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      -

      In addition to the common response headers, the message headers listed in Table 3 may be used.

      +

      In addition to the common response headers, the headers listed in Table 3 may be used.

      Table 3 Additional response headers

      Header

      x-obs-server-side-encryption-kms-key-id

      Indicates the master key ID. This header is included in a response if SSE-KMS is used.

      +

      Indicates the master key ID. This header is included in a response when SSE-KMS is used.

      Type: string

      Format: regionID:domainID:key/key_id regionID indicates the ID of the region where the key belongs. domainID indicates the ID of the tenant where the key belongs. key_id indicates the key ID used in this encryption.

      Example: x-obs-server-side-encryption-kms-key-id:region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

      diff --git a/docs/obs/api-ref/obs_04_0085.html b/docs/obs/api-ref/obs_04_0085.html index 4b897f4c..cfd51fca 100644 --- a/docs/obs/api-ref/obs_04_0085.html +++ b/docs/obs/api-ref/obs_04_0085.html @@ -3,8 +3,9 @@

      Deleting an Object

      Functions

      You can perform this operation to delete an object. If you try to delete an object that does not exist, OBS will return a success message.

      -

      Versioning

      When versioning is enabled for a bucket, a deletion marker with a unique version number is generated when an object is deleted without specifying the version. However, the object is not actually deleted. If versioning is suspended for a bucket and no version is specified when you delete an object, the object whose version number is null is deleted, and a deletion marker with version number null is generated.

      +

      Versioning

      When versioning is enabled for a bucket, a delete request that does not specify a version ID cannot permanently delete the object. Instead, OBS creates a delete marker with a unique version ID. When versioning is suspended for a bucket, a delete request that does not specify a version ID deletes the object whose version ID is null and creates a delete marker with a version ID of null.

      To delete an object of a specified version, the versionId parameter can be used to specify the desired version.

      +

      To restore a deleted object, you need to specify the delete marker version in the versionId parameter when deleting it.

      WORM

      OBS automatically enables versioning when you enable WORM for a bucket. If you delete an object without specifying a version ID, OBS does not really delete this object thanks to versioning, but inserts a delete marker with a unique version ID, which turns into the current version. If you specify a version ID when deleting an object protected by WORM, OBS prevents you from deleting this object and returns a 403 error. Delete markers are not protected by WORM.

      @@ -74,7 +75,7 @@ Date: date

      x-obs-version-id

      Object version ID. If the object has no version number specified, the response does not contain this header.

      -

      Valid value: character string

      +

      Valid value: string

      Default value: none

      Key

      Key of the object to be deleted

      +

      Key of the object to be deleted.

      Type: string

      Yes

      @@ -193,15 +193,15 @@ Content-Length: length

      DeleteMarker

      If this element is specified, true will be returned when you create or delete a deletion marker in the requested bucket with versioning enabled.

      +

      If this element is specified, true will be returned when you create or delete a delete marker in a bucket with versioning enabled.

      Type: boolean

      DeleteMarkerVersionId

      Indicates the version ID of the deletion marker deleted or created by the request.

      -

      If the request either creates or deletes a deletion marker, OBS returns this element in response with the version ID of the deletion marker. This element will be returned in either of the following cases:

      -
      • You send a versionless request, that is, you specify only the object name but not the version ID. In this case, the UDS creates a deletion marker and returns its version ID in the response.
      • You send a request with versions, that is, you specify object keys and version IDs that identify deletion markers. In this case, OBS deletes the deletion marker and returns its version ID in the response.
      +

      Indicates the version ID of the delete marker deleted or created by the request.

      +

      If you create or delete a delete marker in a bucket with versioning enabled, OBS returns this element in the response. This element will be returned in either of the following cases:

      +
      • You send a request that has only the object name but not the version ID specified. In this case, OBS creates a delete marker and returns its version ID in the response.
      • You send a request that has both the object key and version ID (that identifies a delete marker) specified. In this case, OBS deletes the delete marker and returns its version ID in the response.

      Type: boolean

      diff --git a/docs/obs/api-ref/obs_04_0090.html b/docs/obs/api-ref/obs_04_0090.html index 1e7b062a..d395cecf 100644 --- a/docs/obs/api-ref/obs_04_0090.html +++ b/docs/obs/api-ref/obs_04_0090.html @@ -86,7 +86,7 @@ Content-Type: application/xml

      Response Headers

      The response to the request uses common headers. For details, see Table 1.

      -

      In addition to the common response headers, the message headers listed in Table 2 may be used.

      +

      In addition to the common response headers, the headers listed in Table 2 may be used.

      Table 3 Additional response headers

      Header

      diff --git a/docs/obs/api-ref/obs_04_0091.html b/docs/obs/api-ref/obs_04_0091.html index 71d17061..d803a941 100644 --- a/docs/obs/api-ref/obs_04_0091.html +++ b/docs/obs/api-ref/obs_04_0091.html @@ -165,7 +165,7 @@ Last-Modified: time

      Response Headers

      -
      Table 2 Additional response header

      Header

      - - @@ -88,813 +88,813 @@ QUFBQUFBYmJiYmJiYmJD</HostId> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/obs/api-ref/obs_04_0116.html b/docs/obs/api-ref/obs_04_0116.html index 1425febb..2622f1fc 100644 --- a/docs/obs/api-ref/obs_04_0116.html +++ b/docs/obs/api-ref/obs_04_0116.html @@ -2,7 +2,9 @@

      Obtaining Access Keys (AK/SK)

      When you call APIs, you need to use the AK and SK for authentication. To obtain the AK and SK, perform the following steps:

      -
      1. Log in to the console.
      2. Click on the login username in the upper right corner and choose My Credentials from the drop-down list.
      3. Choose Access Keys.
      4. Click Create Access Key.
      5. Enter the login password.
      6. Enter the verification code your mobile phone, or email received, and click OK.
      7. View the access key file that was automatically downloaded.

        Keep AKs and SKs properly to prevent information leakage.

        +
        1. Log in to the console.
        2. Click on the login username in the upper right corner and choose My Credentials from the drop-down list.
        3. Choose Access Keys.
        4. Click Create Access Key.
        5. Enter an access key description (optional) and click OK.
        6. Enter the verification code your mobile phone, virtual MFA device, or email received, and click OK.

          This step is required only when you have enabled operation protection.

          +
          +

        7. Click Download to obtain the access key file.

          Keep AKs and SKs properly to prevent information leakage.

        diff --git a/docs/obs/api-ref/obs_04_0160.html b/docs/obs/api-ref/obs_04_0160.html index f720242f..69d96a0c 100644 --- a/docs/obs/api-ref/obs_04_0160.html +++ b/docs/obs/api-ref/obs_04_0160.html @@ -129,35 +129,35 @@ Authorization: authorization
      diff --git a/docs/obs/api-ref/obs_04_0166.html b/docs/obs/api-ref/obs_04_0166.html index c8429b14..bfecda21 100644 --- a/docs/obs/api-ref/obs_04_0166.html +++ b/docs/obs/api-ref/obs_04_0166.html @@ -72,12 +72,14 @@ Authorization: authorization - @@ -138,7 +140,8 @@ Content-Length: length

      For other errors, see Table 2.

      -

      Sample Request

      PUT /objectname?retention HTTP/1.1
      +

      Sample Request 1

      Configure the WORM protection (with the protection period specified as a timestamp) for an object.

      +
      PUT /objectname?retention HTTP/1.1
       Host: bucketname.obs.region.example.com
       Date: WED, 01 Jul 2015 02:25:05 GMT
       Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw=
      @@ -149,13 +152,32 @@ Content-Length: 157
           <RetainUntilDate>1435728035000</RetainUntilDate>
       </Retention>
      -

      Sample Response

      HTTP/1.1 200 OK
      +

      Sample Response 1

      HTTP/1.1 200 OK
       Server: OBS
       x-obs-request-id: BF260000016435CE298386946AE4C482
       x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz
       Date: WED, 01 Jul 2015 02:25:06 GMT
       Content-Length: 0
      +

      Sample Request 2

      Configure the WORM protection (with the protection period specified in the ISO format) for an object.

      +
      PUT /objectname?retention HTTP/1.1
      +Host: bucketname.obs.region.example.com
      +WED, 01 Jul 2015 02:25:06 GMT
      +Authorization: OBS UDSIAMSTUBTEST043961:qWxD1d0LIT6fGT4Lp7KNUTZ+ikU=
      +Content-Type: application/xml
      +Content-Length: 193
      +<Retention>
      +    <Mode>COMPLIANCE</Mode>
      +    <RetainUntilDate>2015-07-01T13:20:35Z</RetainUntilDate>
      +</Retention>
      +
      +

      Sample Response 2

      HTTP/1.1 200 OK
      +Server: OBS
      +x-obs-request-id: 0000018E3CC039E75306D1560F6A5B61
      +x-obs-id-2: 32AAAUgAIAABAAAQAAEAABAAAQAAEAABCS14XamzycaPY1tivqczu/2SI2sbVBNZ
      +Date: WED, 01 Jul 2015 02:25:06 GMT
      +Content-Length: 0
      +
      Table 3 Additional response header parameters

      Header

      +
      diff --git a/docs/obs/api-ref/obs_04_0097.html b/docs/obs/api-ref/obs_04_0097.html index 57111d4a..f97c2239 100644 --- a/docs/obs/api-ref/obs_04_0097.html +++ b/docs/obs/api-ref/obs_04_0097.html @@ -135,144 +135,144 @@ Content-Length: length diff --git a/docs/obs/api-ref/obs_04_0098.html b/docs/obs/api-ref/obs_04_0098.html index 21abfb5c..88c66045 100644 --- a/docs/obs/api-ref/obs_04_0098.html +++ b/docs/obs/api-ref/obs_04_0098.html @@ -32,6 +32,8 @@ Authorization: authorization @@ -64,7 +66,7 @@ Authorization: authorization @@ -73,7 +75,7 @@ Authorization: authorization @@ -82,7 +84,7 @@ Authorization: authorization @@ -91,7 +93,7 @@ Authorization: authorization @@ -120,7 +122,7 @@ Authorization: authorization @@ -134,8 +136,9 @@ Authorization: authorization

      - key_id

      regionID indicates the ID of the region where the key belongs. domainID indicates the ID of the tenant where the key belongs. key_id indicates the ID of the key created in KMS.

      Examples:

      -

      - x-obs-server-side-encryption-kms-key-id:region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

      -

      - x-obs-server-side-encryption-kms-key-id:4f1cd4de-ab64-4807-920a-47fc42e7f0d0

      +

      1. x-obs-server-side-encryption-kms-key-id: region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

      +

      or

      +

      2. x-obs-server-side-encryption-kms-key-id: 4f1cd4de-ab64-4807-920a-47fc42e7f0d0

      @@ -144,7 +147,7 @@ Authorization: authorization - - - - - diff --git a/docs/obs/api-ref/obs_04_0101.html b/docs/obs/api-ref/obs_04_0101.html index 40ba8a9f..38863a52 100644 --- a/docs/obs/api-ref/obs_04_0101.html +++ b/docs/obs/api-ref/obs_04_0101.html @@ -125,52 +125,52 @@ Content-Length: length @@ -222,28 +222,28 @@ Content-Length: length diff --git a/docs/obs/api-ref/obs_04_0106.html b/docs/obs/api-ref/obs_04_0106.html index 9462d7eb..849fa5d3 100644 --- a/docs/obs/api-ref/obs_04_0106.html +++ b/docs/obs/api-ref/obs_04_0106.html @@ -3,7 +3,8 @@

      SSE-KMS

      Functions

      With SSE-KMS, OBS uses the keys provided by Key Management Service (KMS) for server-side encryption. You can create custom keys on KMS to encrypt your objects. If you do not specify a key, OBS creates a default key the first time you upload an object to the bucket. Custom keys or default keys are used to encrypt and decrypt data encryption keys (DEKs).

      -

      When a custom key in a non-default IAM project is used to encrypt objects, only the key owner can upload or download the encrypted objects.

      +

      When a custom KMS key in a non-default IAM project is used to encrypt objects, only the key owner can upload or download the encrypted objects.

      +

      When the default KMS key in a region is used to encrypt an object, this default key belongs to the object owner. Only the key owner (also the object owner) can upload or download this object.

      Newly Added Headers

      Two headers are added for SSE-KMS. You can configure the headers listed in Table 1 to enable SSE-KMS.

      diff --git a/docs/obs/api-ref/obs_04_0107.html b/docs/obs/api-ref/obs_04_0107.html index 062f0e64..273f1781 100644 --- a/docs/obs/api-ref/obs_04_0107.html +++ b/docs/obs/api-ref/obs_04_0107.html @@ -35,7 +35,7 @@
      Table 3 Additional response headers

      Header

      Description

      Container for responses of requests.

      Type: container

      -

      Children: Bucket, KeyMarker, UploadIdMarker, NextKeyMarker, NextUploadIdMarker, MaxUploads, Delimiter, Prefix, Upload, CommonPrefixes, IsTruncated

      -

      Ancestor: none

      +

      Child: Bucket, KeyMarker, UploadIdMarker, NextKeyMarker, NextUploadIdMarker, MaxUploads, Delimiter, Prefix, Upload, CommonPrefixes, and IsTruncated

      +

      Parent: none

      Bucket

      Name of the bucket to which the multipart upload was initiated

      Type: string

      -

      Ancestor: ListMultipartUploadsResult

      +

      Parent: ListMultipartUploadsResult

      KeyMarker

      Object keys at or after which the multipart upload listing begins

      Type: string

      -

      Ancestor: ListMultipartUploadsResult

      +

      Parent: ListMultipartUploadsResult

      UploadIdMarker

      Upload ID after which the multipart upload listing begins

      Type: string

      -

      Ancestor: ListMultipartUploadsResult

      +

      Parent: ListMultipartUploadsResult

      NextKeyMarker

      Value of KeyMarker in a subsequent request after a multipart upload list is truncated

      Type: string

      -

      Ancestor: ListMultipartUploadsResult

      +

      Parent: ListMultipartUploadsResult

      NextUploadIdMarker

      Value of UploadMarker in a subsequent request when a multipart upload list is truncated.

      Type: string

      -

      Ancestor: ListMultipartUploadsResult

      +

      Parent: ListMultipartUploadsResult

      MaxUploads

      Maximum of multipart uploads to be returned in the response

      Type: integer

      -

      Ancestor: ListMultipartUploadsResult

      +

      Parent: ListMultipartUploadsResult

      IsTruncated

      Indicates whether the returned list of multipart uploads is truncated. The value true indicates that the list was truncated and false indicates that the list was not truncated.

      Type: boolean

      -

      Ancestor: ListMultipartUploadsResult

      +

      Parent: ListMultipartUploadsResult

      Upload

      Container for elements related to a specific multipart upload

      Type: container

      -

      Children: Key, UploadId, InitiatorOwner, StorageClass, Initiated

      -

      Ancestor: ListMultipartUploadsResult

      +

      Child: Key, UploadId, InitiatorOwner, StorageClass, and Initiated

      +

      Parent: ListMultipartUploadsResult

      Key

      Indicates the name of the object for which a multipart upload is initiated.

      Type: string

      -

      Ancestor: Upload

      +

      Parent: Upload

      UploadId

      ID of the multipart upload

      Type: string

      -

      Ancestor: Upload

      +

      Parent: Upload

      Initiator

      Container element that identifies who initiated the multipart upload

      -

      Children: ID

      +

      Child: ID

      Type: container

      -

      Ancestor: Upload

      +

      Parent: Upload

      ID

      ID of the account to which the owner belongs.

      Type: string

      -

      Ancestor: Initiator or Owner

      +

      Parent: Initiator or Owner

      Owner

      Owner of the part.

      Type: container

      -

      Children: ID

      -

      Ancestor: Upload

      +

      Child: ID

      +

      Parent: Upload

      StorageClass

      Indicates the storage class that will be used for storing an object when the multipart is uploaded.

      Type: string

      -

      Ancestor: Upload

      +

      Parent: Upload

      Initiated

      Date and time when the multipart upload was initiated

      Type: date

      -

      Ancestor: Upload

      +

      Parent: Upload

      ListMultipartUploadsResult.Prefix

      Specified prefix in a request.

      Type: string

      -

      Ancestor: ListMultipartUploadsResult

      +

      Parent: ListMultipartUploadsResult

      Delimiter

      Delimiter in a request.

      Type: string

      -

      Ancestor: ListMultipartUploadsResult

      +

      Parent: ListMultipartUploadsResult

      CommonPrefixes

      Indicates group information. If you specify a delimiter in the request, the response contains group information in CommonPrefixes.

      Type: container

      -

      Ancestor: ListMultipartUploadsResult

      +

      Parent: ListMultipartUploadsResult

      CommonPrefixes. Prefix

      Indicates a different prefix in the group information in CommonPrefixes.

      Type: string

      -

      Ancestor: CommonPrefixes

      +

      Parent: CommonPrefixes

      Indicates a multipart upload.

      Type: string

      +
      NOTE:
      • This parameter is an empty string.
      • If this parameter is not contained in a request, the request performs a common upload using POST.
      +

      Yes

      When initiating a multipart upload, you can use this header to grant all users in an account the permissions to read the object and obtain the object metadata.

      Type: string

      -

      Example: x-obs-grant-read: ID=domainID If multiple accounts are authorized, separate them with commas (,).

      +

      Example: x-obs-grant-read: ID=domainID. If multiple accounts are authorized, separate them with commas (,).

      No

      When initiating a multipart upload, you can use this header to grant all users in an account the permission to obtain the object ACL.

      Type: string

      -

      Example: x-obs-grant-read-acp: ID=domainID If multiple accounts are authorized, separate them with commas (,).

      +

      Example: x-obs-grant-read-acp: ID=domainID. If multiple accounts are authorized, separate them with commas (,).

      No

      When initiating a multipart upload, you can use this header to grant all users in an account the permission to write the object ACL.

      Type: string

      -

      Example: x-obs-grant-write-acp: ID=domainID If multiple accounts are authorized, separate them with commas (,).

      +

      Example: x-obs-grant-write-acp: ID=domainID. If multiple accounts are authorized, separate them with commas (,).

      No

      When initiating a multipart upload, you can use this header to grant all users in an account the permissions to read the object, obtain the object metadata and ACL, and write the object ACL.

      Type: string

      -

      Example: x-obs-grant-full-control: ID=domainID If multiple accounts are authorized, separate them with commas (,).

      +

      Example: x-obs-grant-full-control: ID=domainID. If multiple accounts are authorized, separate them with commas (,).

      No

      Indicates that SSE-KMS is used.

      Type: string

      -

      Example: x-obs-server-side-encryption:kms

      +

      Example: x-obs-server-side-encryption: kms

      No. This header is required when SSE-KMS is used.

      No

      Indicates the encryption algorithm when SSE-C is used.

      Type: string

      -

      Example: x-obs-server-side-encryption-customer-algorithm:AES256

      +

      Example: x-obs-server-side-encryption-customer-algorithm: AES256

      Constraint: This header must be used together with x-obs-server-side-encryption-customer-key and x-obs-server-side-encryption-customer-key-MD5.

      No. This header is required when SSE-C is used.

      @@ -250,23 +253,23 @@ Connection: status

      This header is included in a response if SSE-KMS is used.

      Type: string

      -

      Example: x-obs-server-side-encryption:kms

      +

      Example: x-obs-server-side-encryption: kms

      x-obs-server-side-encryption-kms-key-id

      Indicates the master key ID. This header is included in a response if SSE-KMS is used.

      +

      Indicates the master key ID. This header is included in a response when SSE-KMS is used.

      Type: string

      Format: regionID:domainID:key/key_id

      regionID indicates the ID of the region where the key belongs. domainID indicates the ID of the tenant where the key belongs. key_id indicates the key ID used in this encryption.

      -

      Example: x-obs-server-side-encryption-kms-key-id:region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

      +

      Example: x-obs-server-side-encryption-kms-key-id: region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

      x-obs-server-side-encryption-customer-algorithm

      Indicates an encryption algorithm. This header is included in a response if SSE-C is used.

      +

      Indicates the encryption algorithm. This header is included in a response when SSE-C is used.

      Type: string

      -

      Example: x-obs-server-side-encryption-customer-algorithm:AES256

      +

      Example: x-obs-server-side-encryption-customer-algorithm: AES256

      x-obs-server-side-encryption-customer-key-MD5

      @@ -318,7 +321,7 @@ Connection: status

      Error Responses

      1. If the AK or signature is invalid, OBS returns 403 Forbidden and the error code is AccessDenied.

      2. If the bucket is not found, OBS returns 404 Not Found and the error code is NoSuchBucket.

      -

      3. Check whether the user has the write permission for the specified bucket. If no, OBS returns 403 Forbidden and the error code is AccessDenied.

      +

      3. Check whether the user has the write permission for the specified bucket. If not, OBS returns 403 Forbidden and the error code is AccessDenied.

      Other errors are included in Table 2.

      Sample Request: Initiating a Multipart Upload

      + + + + + + + + + + + + + + + +
      1
      diff --git a/docs/obs/api-ref/obs_04_0100.html b/docs/obs/api-ref/obs_04_0100.html
      index 7d0256fa..ab7aacf7 100644
      --- a/docs/obs/api-ref/obs_04_0100.html
      +++ b/docs/obs/api-ref/obs_04_0100.html
      @@ -135,6 +135,52 @@ Content-Length: length

      No. This header is required when SSE-C is used to copy a source object.

      x-obs-copy-source-if-match

      +

      Indicates that the source object is copied only if its ETag matches the one specified in this header. Otherwise, a 412 status code (failed precondition) is returned.

      +

      Type: string

      +

      Example: x-obs-copy-source-if-match: etag

      +

      Constraint: This header can be used with x-obs-copy-source-if-unmodified-since but not other conditional copy headers.

      +

      No

      +

      x-obs-copy-source-if-none-match

      +

      Indicates that the source object is copied only if its ETag does not match the one specified in this header. Otherwise, a 412 status code (failed precondition) is returned.

      +

      Type: string

      +

      Example: x-obs-copy-source-if-none-match: etag

      +

      Constraint: This header can be used with x-obs-copy-source-if-modified-since but not other conditional copy headers.

      +

      No

      +

      x-obs-copy-source-if-unmodified-since

      +

      Indicates that the source object is copied only if it has not been modified since the time specified by this header. Otherwise, a 412 status code (failed precondition) is returned. This header can be used with x-obs-copy-source-if-match but not other conditional copy headers.

      +

      Type: string

      +

      Format: HTTP time string complying with the format specified at http://www.ietf.org/rfc/rfc2616.txt, which can be any of the following:

      +
      1. EEE, dd MMM yyyy HH:mm:ss z
      2. EEEE, dd-MMM-yy HH:mm:ss z
      3. EEE MMM dd HH:mm:ss yyyy
      +

      Examples:

      +
      1. x-obs-copy-source-if-unmodified-since: Sun, 06 Nov 1994 08:49:37 GMT
      2. x-obs-copy-source-if-unmodified-since: Sunday, 06-Nov-94 08:49:37 GMT
      3. x-obs-copy-source-if-unmodified-since: Sun Nov 6 08:49:37 1994
      +

      Constraint: The time specified by this header cannot be later than the current server time (GMT time), or this header does not take effect.

      +

      No

      +

      x-obs-copy-source-if-modified-since

      +

      Indicates that the source object is copied only if it has been modified since the time specified by this header. Otherwise, a 412 status code (failed precondition) is returned. This header can be used with x-obs-copy-source-if-none-match but not other conditional copy headers.

      +

      Type: string

      +

      Format: HTTP time string complying with the format specified at http://www.ietf.org/rfc/rfc2616.txt, which can be any of the following:

      +
      1. EEE, dd MMM yyyy HH:mm:ss z
      2. EEEE, dd-MMM-yy HH:mm:ss z
      3. EEE MMM dd HH:mm:ss yyyy
      +

      Examples:

      +
      1. x-obs-copy-source-if-unmodified-since: Sun, 06 Nov 1994 08:49:37 GMT
      2. x-obs-copy-source-if-unmodified-since: Sunday, 06-Nov-94 08:49:37 GMT
      3. x-obs-copy-source-if-unmodified-since: Sun Nov 6 08:49:37 1994
      +

      Constraint: The time specified by this header cannot be later than the current server time (GMT time), or this header does not take effect.

      +

      No

      +
      @@ -167,7 +213,7 @@ Date: date

      x-obs-server-side-encryption-kms-key-id

      Indicates the master key ID. This header is included in a response if SSE-KMS is used.

      +

      Indicates the master key ID. This header is included in a response when SSE-KMS is used.

      Type: string

      Format: regionID:domainID:key/key_id

      regionID indicates the ID of the region where the key belongs. domainID indicates the ID of the tenant where the key belongs. key_id indicates the key ID used in this encryption.

      @@ -176,14 +222,14 @@ Date: date

      x-obs-server-side-encryption-customer-algorithm

      Indicates an encryption algorithm. This header is included in a response if SSE-C is used.

      +

      Indicates the encryption algorithm. This header is included in a response when SSE-C is used.

      Type: string

      Example: x-obs-server-side-encryption-customer-algorithm:AES256

      x-obs-server-side-encryption-customer-key-MD5

      Indicates the MD5 value of a key used to encrypt objects. This header is included in a response if SSE-C is used.

      +

      Indicates the MD5 value of the key for encrypting objects. This header is included in a response when SSE-C is used.

      Type: string

      Example: x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

      Container for responses to part listing requests

      Type: container

      -

      Children: Bucket, Key, UploadId, PartNumberMarker, NextPartNumberMarker, MaxParts, IsTruncated, Part

      -

      Ancestor: none

      +

      Child: Bucket, Key, UploadId, PartNumberMarker, NextPartNumberMarker, MaxParts, IsTruncated, and Part

      +

      Parent: none

      Bucket

      Name of the bucket

      Type: string

      -

      Ancestor: ListPartsResult

      +

      Parent: ListPartsResult

      Key

      Object name

      Type: string

      -

      Ancestor: ListPartsResult

      +

      Parent: ListPartsResult

      UploadId

      ID of the multipart upload

      Type: string

      -

      Ancestor: ListPartsResult

      +

      Parent: ListPartsResult

      Initiator

      Initiator of the multipart upload

      Type: container

      -

      Children: ID

      -

      Ancestor: ListPartsResult

      +

      Child: ID

      +

      Parent: ListPartsResult

      Owner

      The value of this parameter is the same as that of Initiator.

      Type: container

      -

      Children: ID

      -

      Ancestor: ListPartsResult

      +

      Child: ID

      +

      Parent: ListPartsResult

      ID

      ID of the domain where the owner belongs

      Type: string

      -

      Ancestor: Initiator or Owner

      +

      Parent: Initiator or Owner

      StorageClass

      @@ -178,43 +178,43 @@ Content-Length: length

      Storage class

      Type: string

      Value options: STANDARD, WARM, COLD

      -

      Ancestor: ListPartsResult

      +

      Parent: ListPartsResult

      PartNumberMarker

      Part number after which listing parts begins

      Type: integer

      -

      Ancestor: ListPartsResult

      +

      Parent: ListPartsResult

      NextPartNumberMarker

      Value of PartNumberMarker in the next request when the returned result is incomplete

      Type: integer

      -

      Ancestor: ListPartsResult

      +

      Parent: ListPartsResult

      MaxParts

      Maximum number of parts returned in a response

      Type: integer

      -

      Ancestor: ListPartsResult

      +

      Parent: ListPartsResult

      IsTruncated

      Whether the returned part list is truncated. The value true indicates that the list was truncated and false indicates that the list was not truncated.

      Type: boolean

      -

      Ancestor: ListPartsResult

      +

      Parent: ListPartsResult

      Part

      Container for elements related to a particular part.

      Type: string

      -

      Children: PartNumber, LastModified, ETag, Size

      -

      Ancestor: ListPartsResult

      +

      Child: PartNumber, LastModified, ETag, and Size

      +

      Parent: ListPartsResult

      PartNumber identifies a part.

      Number of an uploaded part

      Type: integer

      -

      Ancestor: ListPartsResult.Part

      +

      Parent: ListPartsResult.Part

      LastModified

      When a part was uploaded

      Type: date

      -

      Ancestor: ListPartsResult.Part

      +

      Parent: ListPartsResult.Part

      ETag

      ETag value of the uploaded parts. It is the unique identifier of the part content and is used to verify data consistency during the combination of parts.

      Type: string

      -

      Ancestor: ListPartsResult.Part

      +

      Parent: ListPartsResult.Part

      Size

      Size of an uploaded part

      Type: integer

      -

      Ancestor: ListPartsResult.Part

      +

      Parent: ListPartsResult.Part

      APIs where the newly added headers apply:

      - +

      The following table lists three headers that are added for CopyObject and UploadPart-Copy operations to support source objects encrypted using SSE-C.

      diff --git a/docs/obs/api-ref/obs_04_0109.html b/docs/obs/api-ref/obs_04_0109.html new file mode 100644 index 00000000..2214ee17 --- /dev/null +++ b/docs/obs/api-ref/obs_04_0109.html @@ -0,0 +1,15 @@ + + +

      IAM Policies and Supported Actions

      +
      + + diff --git a/docs/obs/api-ref/obs_04_0110.html b/docs/obs/api-ref/obs_04_0110.html new file mode 100644 index 00000000..c6423ab1 --- /dev/null +++ b/docs/obs/api-ref/obs_04_0110.html @@ -0,0 +1,22 @@ + + +

      Introduction

      +

      This section describes fine-grained permissions management for your OBS. If your account does not require individual IAM users, skip this section.

      +

      By default, new IAM users do not have any permissions assigned. You need to add a user to one or more groups, and attach IAM policies to these groups. The user then inherits permissions from the groups it is a member of. This process is called authorization. After authorization, the user can perform specified operations on OBS based on the IAM policies.

      +

      For details about user policies related to OBS, see Permissions Management in the "Service Overview" section of Object Storage Service User Guide. For details about the syntax structure and examples of IAM policies, see IAM Policies in the section "Permission Control" > "Permission Control Mechanisms" in the "Console Operation Guide" of Object Storage Service User Guide.

      +

      There are fine-grained policies and role-based access control (RBAC) policies. An RBAC policy consists of permissions for an entire service. Users in a group with such a policy assigned are granted all of the permissions required for that service. A fine-grained policy consists of API-based permissions for operations on specific resource types. Fine-grained policies, as the name suggests, allow for more fine-grained control than RBAC policies.

      +
      • If you want to allow or deny the access to an API, fine-grained authorization is a good choice.
      • Because of the cache, it takes about 10 to 15 minutes for the RBAC policy to take effect after being granted to users and user groups. After a fine-grained OBS policy is granted, it takes about 5 minutes for the policy to take effect.
      +
      +

      An account has all of the permissions required to call all APIs, but IAM users must have the required permissions specifically assigned. The required permissions are determined by the actions supported by the API. Only users with the policies allowing for those actions can call the API successfully. For example, if an IAM user needs to create buckets using an API, the user must have been granted permissions that allow the obs:bucket:CreateBucket action.

      +

      Supported Actions

      Operations supported by a fine-grained policy are specific to APIs. The following describes the headers of the actions provided in this section:

      +
      • Permissions: defined by actions in a custom policy
      • APIs: REST APIs that can be called by a user who has been granted specific permissions
      • Actions: specific operations that are allowed or denied in a custom policy
      +

      OBS supports the following actions in custom policies:

      +
      • Bucket-related actions include actions supported by all OBS bucket-related APIs, such as the APIs for listing all buckets, creating and deleting buckets, configuring bucket policies, configuring bucket event notification, configuring cross-region replication, and configuring bucket logging.
      • Object-related actions include APIs for uploading, downloading, and deleting objects.
      +
      +
      + + diff --git a/docs/obs/api-ref/obs_04_0111.html b/docs/obs/api-ref/obs_04_0111.html new file mode 100644 index 00000000..d2e17416 --- /dev/null +++ b/docs/obs/api-ref/obs_04_0111.html @@ -0,0 +1,470 @@ + + +

      Bucket Actions

      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Table 1 Bucket actions

      Permission

      +

      API

      +

      Action

      +

      IAM Project

      +

      Listing all buckets

      +

      Listing Buckets

      +

      obs:bucket:ListAllMyBuckets

      +

      Supported

      +

      Creating a bucket

      +

      Creating a Bucket

      +

      obs:bucket:CreateBucket

      +

      Supported

      +

      Listing objects in a bucket

      +

      Listing Objects in a Bucket

      +

      obs:bucket:ListBucket

      +

      Supported

      +

      Listing object versions in a bucket

      +

      Listing Objects in a Bucket

      +

      obs:bucket:ListBucketVersions

      +

      Supported

      +

      Determining whether a bucket exists and obtaining the bucket metadata

      +

      Obtaining Bucket Metadata

      +

      obs:bucket:HeadBucket

      +

      Supported

      +

      Obtaining the bucket location

      +

      Obtaining Bucket Location

      +

      obs:bucket:GetBucketLocation

      +

      Supported

      +

      Deleting a bucket

      +

      Deleting Buckets

      +

      obs:bucket:DeleteBucket

      +

      Supported

      +

      Configuring a bucket policy

      +

      Configuring a Bucket Policy

      +

      obs:bucket:PutBucketPolicy

      +

      Supported

      +

      Obtain the bucket policy configurations

      +

      Obtaining Bucket Policy Information

      +

      obs:bucket:GetBucketPolicy

      +

      Supported

      +

      Deleting a bucket policy

      +

      Deleting a Bucket Policy

      +

      obs:bucket:DeleteBucketPolicy

      +

      Supported

      +

      Configuring the bucket ACL

      +

      Configuring a Bucket ACL

      +

      obs:bucket:PutBucketAcl

      +

      Supported

      +

      Obtaining the bucket ACL information

      +

      Obtaining Bucket ACL Information

      +

      obs:bucket:GetBucketAcl

      +

      Supported

      +

      Configuring logging for a bucket

      +

      Configuring Logging for a Bucket

      +

      obs:bucket:PutBucketLogging

      +

      Supported

      +

      Obtaining the logging configurations of a bucket

      +

      Obtaining a Bucket Logging Configuration

      +

      obs:bucket:GetBucketLogging

      +

      Supported

      +

      Configuring or deleting a lifecycle rule

      +

      Configuring Bucket Lifecycle Rules

      +

      Deleting Lifecycle Rules

      +

      obs:bucket:PutLifecycleConfiguration

      +

      +

      Supported

      +

      Obtaining the lifecycle rule configurations

      +

      Obtaining Bucket Lifecycle Configuration

      +

      obs:bucket:GetLifecycleConfiguration

      +

      Supported

      +

      Configuring versioning for a bucket

      +

      Configuring Versioning for a Bucket

      +

      obs:bucket:PutBucketVersioning

      +

      Supported

      +

      Obtaining the versioning configurations of a bucket

      +

      Obtaining Bucket Versioning Status

      +

      obs:bucket:GetBucketVersioning

      +

      Supported

      +

      Configuring event notifications for a bucket

      +

      Configuring Event Notification for a Bucket

      +

      obs:bucket:PutBucketNotification

      +

      Supported

      +

      Obtaining the event notification configurations of a bucket

      +

      Obtaining the Event Notification Configuration of a Bucket

      +

      obs:bucket:GetBucketNotification

      +

      Supported

      +

      Configuring storage class for a bucket

      +

      Configuring Storage Class for a Bucket

      +

      obs:bucket:PutBucketStoragePolicy

      +

      Supported

      +

      Obtaining the storage class of a bucket

      +

      Obtaining Bucket Storage Class Information

      +

      obs:bucket:GetBucketStoragePolicy

      +

      Supported

      +

      Configuring cross-region replication for a bucket

      +

      Configuring Cross-Region Replication for a Bucket

      +

      obs:bucket:PutReplicationConfiguration

      +

      Supported

      +

      Obtaining the cross-region replication configuration of a bucket

      +

      Obtaining the Cross-Region Replication Configuration of a Bucket

      +

      obs:bucket:GetReplicationConfiguration

      +

      Supported

      +

      Deleting the cross-region replication configuration of a bucket

      +

      Deleting the Cross-Region Replication Configuration of a Bucket

      +

      obs:bucket:DeleteReplicationConfiguration

      +

      Supported

      +

      Adding tags to a bucket

      +

      Configuring Tags for a Bucket

      +

      obs:bucket:PutBucketTagging

      +

      Supported

      +

      Obtaining bucket tags

      +

      Obtaining Bucket Tags

      +

      obs:bucket:GetBucketTagging

      +

      Supported

      +

      Deleting bucket tags

      +

      Deleting Tags

      +

      obs:bucket:DeleteBucketTagging

      +

      Supported

      +

      Limiting storage capacity for a bucket

      +

      Configuring Bucket Storage Quota

      +

      obs:bucket:PutBucketQuota

      +

      Supported

      +

      Querying the storage capacity limit of a bucket

      +

      Querying Bucket Storage Quota

      +

      obs:bucket:GetBucketQuota

      +

      Supported

      +

      Querying the used capacity of a bucket

      +

      Obtaining Storage Information of a Bucket

      +

      obs:bucket:GetBucketStorage

      +

      Supported

      +

      Configuring inventories for a bucket

      +

      Configuring Bucket Inventories

      +

      obs:bucket:PutBucketInventoryConfiguration

      +

      Supported

      +

      Obtaining a specific inventory or listing all inventories of a bucket

      +

      Obtaining a Specific Inventory of a Bucket

      +

      Listing All Inventories of a Bucket

      +

      obs:bucket:GetBucketInventoryConfiguration

      +

      Supported

      +

      Deleting bucket inventories

      +

      Deleting Bucket Inventories

      +

      obs:bucket:DeleteBucketInventoryConfiguration

      +

      Supported

      +

      Configuring a user-defined domain name for a bucket

      +

      Configuring a Custom Domain Name for a Bucket

      +

      obs:bucket:PutBucketCustomDomainConfiguration

      +

      Supported

      +

      Obtaining the user-defined domain name of a bucket

      +

      Obtaining the Custom Domain Name of a Bucket

      +

      obs:bucket:GetBucketCustomDomainConfiguration

      +

      Supported

      +

      Deleting the user-defined domain name of a bucket

      +

      Deleting the Custom Domain Name of a Bucket

      +

      obs:bucket:DeleteBucketCustomDomainConfiguration

      +

      Supported

      +

      Configuring or deleting encryption for a bucket

      +

      Configuring Bucket Encryption

      +

      Deleting the Encryption Configuration of a Bucket

      +

      obs:bucket:PutEncryptionConfiguration

      +

      Supported

      +

      Obtaining the encryption configurations of a bucket

      +

      Obtaining Bucket Encryption Configuration

      +

      obs:bucket:GetEncryptionConfiguration

      +

      Supported

      +

      Configuring static website hosting for a bucket

      +

      Configuring Static Website Hosting for a Bucket

      +

      obs:bucket:PutBucketWebsite

      +

      Supported

      +

      Obtaining the static website hosting configurations of a bucket

      +

      Obtaining the Static Website Hosting Configuration of a Bucket

      +

      obs:bucket:GetBucketWebsite

      +

      Supported

      +

      Deleting the static website hosting configurations of a bucket

      +

      Deleting the Static Website Hosting Configuration of a Bucket

      +

      obs:bucket:DeleteBucketWebsite

      +

      Supported

      +

      Configuring or deleting CORS rules for a bucket

      +

      Configuring Bucket CORS

      +

      Deleting the CORS Configuration of a Bucket

      +

      obs:bucket:PutBucketCORS

      +

      Supported

      +

      Obtaining the CORS configurations of a bucket

      +

      Obtaining the CORS Configuration of a Bucket

      +

      obs:bucket:GetBucketCORS

      +

      Supported

      +

      Configuring Requester Pays for a bucket

      +

      Configuring the Requester-Pays Function for a Bucket

      +

      obs:bucket:PutBucketRequestPayment

      +

      Supported

      +

      Obtaining the Requester Pays configurations of a bucket

      +

      Obtaining the Requester-Pays Configuration Information of a Bucket

      +

      obs:bucket:GetBucketRequestPayment

      +

      Supported

      +

      Configuring a default WORM policy for a bucket

      +

      Configuring a Default WORM Policy for a Bucket

      +

      obs:bucket:PutBucketObjectLockConfiguration

      +

      Supported

      +

      Obtaining the default WORM policy of a bucket

      +

      Obtaining the Default WORM Policy of a Bucket

      +

      obs:bucket:GetBucketObjectLockConfiguration

      +

      Supported

      +

      Listing initiated multipart uploads in a bucket

      +

      Listing Initiated Multipart Uploads in a Bucket

      +

      obs:bucket:ListBucketMultipartUploads

      +

      Supported

      +
      +
      +
      + + diff --git a/docs/obs/api-ref/obs_04_0112.html b/docs/obs/api-ref/obs_04_0112.html new file mode 100644 index 00000000..d25f04a9 --- /dev/null +++ b/docs/obs/api-ref/obs_04_0112.html @@ -0,0 +1,168 @@ + + +

      Object Actions

      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Table 1 Object actions

      Permission

      +

      API

      +

      Action

      +

      IAM Project

      +

      Uploading objects with PUT or POST, copying objects, appending content to objects, initiating a multipart upload, as well as uploading, copying, and assembling parts

      +

      Uploading an Object - PUT

      +

      Uploading an Object - POST

      +

      Copying an Object

      +

      Initiating a Multipart Upload

      +

      Uploading Parts

      +

      Completing a Multipart Upload

      +

      obs:object:PutObject

      +

      Supported

      +

      Obtaining the content and metadata of an object

      +

      Downloading an Object

      +

      Querying Object Metadata

      +

      obs:object:GetObject

      +

      Supported

      +

      Obtaining the content and metadata of a specific object version

      +

      Downloading an Object

      +

      Querying Object Metadata

      +

      obs:object:GetObjectVersion

      +

      Supported

      +

      Deleting a single object or a batch of objects

      +

      Deleting an Object

      +

      Deleting Objects

      +

      obs:object:DeleteObject

      +

      Supported

      +

      Deleting a single object version or a batch of object versions

      +

      Deleting an Object

      +

      Deleting Objects

      +

      obs:object:DeleteObjectVersion

      +

      Supported

      +

      Restoring Cold objects

      +

      Restoring Cold Objects

      +

      obs:object:RestoreObject

      +

      Supported

      +

      Configuring the object ACL

      +

      Configuring an Object ACL

      +

      obs:object:PutObjectAcl

      +

      Supported

      +

      Configuring the ACL for a specific object version

      +

      Configuring an Object ACL

      +

      obs:object:PutObjectVersionAcl

      +

      Supported

      +

      Obtaining the object ACL information

      +

      Obtaining Object ACL Configuration

      +

      obs:object:GetObjectAcl

      +

      Supported

      +

      Obtaining the ACL information of a specific object version

      +

      Obtaining Object ACL Configuration

      +

      obs:object:GetObjectVersionAcl

      +

      Supported

      +

      Modifying object metadata

      +

      Modifying Object Metadata

      +

      obs:object:ModifyObjectMetaData

      +

      Supported

      +

      Listing uploaded parts

      +

      Listing Uploaded Parts

      +

      obs:object:ListMultipartUploadParts

      +

      Supported

      +

      Aborting a multipart upload

      +

      Canceling a Multipart Upload Task

      +

      obs:object:AbortMultipartUpload

      +

      Supported

      +

      Configuring WORM retention for an object

      +

      Configuring WORM Retention for an Object

      +

      obs:object:PutObjectRetention

      +

      Supported

      +

      Obtaining the object-level WORM retention configuration

      +

      Querying Object Metadata

      +

      obs:object:GetObjectRetention

      +

      Supported

      +
      +
      +
      + + diff --git a/docs/obs/api-ref/obs_04_0115.html b/docs/obs/api-ref/obs_04_0115.html index 56ae868f..e36e6e2c 100644 --- a/docs/obs/api-ref/obs_04_0115.html +++ b/docs/obs/api-ref/obs_04_0115.html @@ -78,9 +78,9 @@ QUFBQUFBYmJiYmJiYmJD</HostId>

      Error Code

      Error Message

      +

      Error Message

      Solution

      +

      Solution

      PermanentRedirect

      The requested bucket can be accessed only through the specified address. Send subsequent requests to the address.

      +

      The requested bucket can be accessed only through the specified address. Send subsequent requests to the address.

      Send the request to the returned redirection address.

      +

      Send the request to the returned redirection address.

      301 Moved Permanently

      WebsiteRedirect

      The website request lacks bucketName.

      +

      The website request lacks bucketName.

      Put the bucket name in the request and try again.

      +

      Put the bucket name in the request and try again.

      307 Moved Temporarily

      TemporaryRedirect

      Temporary redirection. If the DNS is updated, the request is redirected to the bucket.

      +

      Temporary redirection. If the DNS is updated, the request is redirected to the bucket.

      The system automatically redirects the request or sends the request to the redirection address.

      +

      The system automatically redirects the request or sends the request to the redirection address.

      400 Bad Request

      BadDigest

      The specified value of Content-MD5 does not match the value received by OBS.

      +

      The specified value of Content-MD5 does not match the value received by OBS.

      Check whether the MD5 value carried in the header is the same as that calculated by the message body.

      +

      Check whether the MD5 value carried in the header is the same as that calculated by the message body.

      400 Bad Request

      BadDomainName

      The domain name is invalid.

      +

      The domain name is invalid.

      Use a valid domain name.

      +

      Use a valid domain name.

      400 Bad Request

      BadRequest

      Invalid request parameters.

      +

      Invalid request parameters.

      Modify the parameters according to the error details in the message body.

      +

      Modify the parameters according to the error details in the message body.

      400 Bad Request

      CustomDomainAreadyExist

      The configured domain already exists.

      +

      The configured domain already exists.

      It has been configured and does not need to be configured again.

      +

      It has been configured and does not need to be configured again.

      400 Bad Request

      CustomDomainNotExist

      Delete the domain that does not exist.

      +

      Delete the domain that does not exist.

      It is not configured or has been deleted. You do not need to delete it.

      +

      It is not configured or has been deleted. You do not need to delete it.

      400 Bad Request

      EntityTooLarge

      • The size of the file uploaded using the PUT, POST, or Append methods of SDKs or APIs exceeds 5 GB.
      • The part uploaded is larger than 5 GB in size.
      • The size of the bucket configurations exceeds 20 KB.
      • The file size exceeds the upper limit defined in the policy of the POST form.
      +
      • The size of the file uploaded using the PUT, POST, or Append methods of SDKs or APIs exceeds 5 GB.
      • The part uploaded is larger than 5 GB in size.
      • The size of the bucket configurations exceeds 20 KB.
      • The file size exceeds the upper limit defined in the policy of the POST form.
      • The size of the file uploaded using the multipart upload of SDKs or APIs or the resumable upload of SDKs exceeds 48.8 TB.

      Modify the conditions specified in the upload policy or reduce the object size.

      +

      Modify the conditions specified in the upload policy or reduce the object size.

      400 Bad Request

      EntityTooSmall

      • The part uploaded, except the last one, is smaller than 100 KB.
      • The file size is smaller than the lower limit defined in the policy of the POST form.
      +
      • The part uploaded, except the last one, is smaller than 100 KB.
      • The file size is smaller than the lower limit defined in the policy of the POST form.

      Modify the conditions specified in the upload policy or increase the object size.

      +

      Modify the conditions specified in the upload policy or increase the object size.

      400 Bad Request

      IllegalLocationConstraintException

      A request without Location is sent for creating a bucket in a non-default region.

      +

      A request without Location is sent for creating a bucket in a non-default region.

      Send the bucket creation request to the default region, or send the request with the Location of the non-default region.

      +

      Send the bucket creation request to the default region, or send the request with the Location of the non-default region.

      400 Bad Request

      IncompleteBody

      No complete request body is received due to network or other problems.

      +

      No complete request body is received due to network or other problems.

      Upload the object again.

      +

      Upload the object again.

      400 Bad Request

      IncorrectNumberOfFilesInPost Request

      Each POST request must contain one file to be uploaded.

      +

      Each POST request must contain one file to be uploaded.

      Carry a file to be uploaded.

      +

      Carry a file to be uploaded.

      400 Bad Request

      InvalidArgument

      Invalid parameter.

      +

      Invalid parameter.

      Modify the parameter according to the error details in the message body.

      +

      Modify the parameter according to the error details in the message body.

      400 Bad Request

      InvalidBucket

      The bucket to be accessed does not exist.

      +

      The bucket to be accessed does not exist.

      Change the bucket name.

      +

      Change the bucket name.

      400 Bad Request

      InvalidBucketName

      The bucket name specified in the request is invalid, which may have exceeded the maximum length, or contain special characters that are not allowed.

      +

      The bucket name specified in the request is invalid, which may have exceeded the maximum length, or contain special characters that are not allowed.

      Change the bucket name.

      +

      Change the bucket name.

      400 Bad Request

      InvalidContentLength

      Invalid Content-Length value.

      +

      Invalid Content-Length value.

      Check the encapsulation header or contact technical support.

      +

      Check the encapsulation header or contact technical support.

      400 Bad Request

      InvalidDefaultStorageClass

      The default storage class is invalid.

      +

      The default storage class is invalid.

      Check which storage classes can be used.

      +

      Check which storage classes can be used.

      400 Bad Request

      InvalidEncryptionAlgorithmError

      Incorrect encryption algorithm. The object cannot be decrypted due to incorrect encryption header carried when downloading the SSE-C encrypted object.

      +

      Incorrect encryption algorithm. The object cannot be decrypted due to incorrect encryption header carried when downloading the SSE-C encrypted object.

      Carry the correct encryption header when downloading the object.

      +

      Carry the correct encryption header when downloading the object.

      400 Bad Request

      InvalidLocationConstraint

      The specified Location in the bucket creation request is invalid or does not exist.

      +

      The specified Location in the bucket creation request is invalid or does not exist.

      Correct the Location in the bucket creation request.

      +

      Correct the Location in the bucket creation request.

      400 Bad Request

      InvalidPart

      One or more specified parts are not found. The parts may not be uploaded or the specified entity tags (ETags) do not match the parts' ETags.

      +

      One or more specified parts are not found. The parts may not be uploaded or the specified entity tags (ETags) do not match the parts' ETags.

      Merge the parts correctly according to the ETags.

      +

      Merge the parts correctly according to the ETags.

      400 Bad Request

      InvalidPartOrder

      Parts are not listed in ascending order by part number.

      +

      Parts are not listed in ascending order by part number.

      Sort the parts in ascending order and merge them again.

      +

      Sort the parts in ascending order and merge them again.

      400 Bad Request

      InvalidPolicyDocument

      The content of the form does not meet the conditions specified in the policy document.

      +

      The content of the form does not meet the conditions specified in the policy document.

      Modify the policy in the constructed form according to the error details in the message body and try again.

      +

      Modify the policy in the constructed form according to the error details in the message body and try again.

      400 Bad Request

      InvalidRedirectLocation

      Invalid redirect location.

      +

      Invalid redirect location.

      Specifies the correct IP address.

      +

      Specifies the correct IP address.

      400 Bad Request

      InvalidRequest

      Invalid request.

      +

      Invalid request.

      Modify the parameter according to the error details in the message body.

      +

      Modify the parameter according to the error details in the message body.

      400 Bad Request

      InvalidRequestBody

      The request body is invalid. The request requires a message body but no message body is uploaded.

      +

      The request body is invalid. The request requires a message body but no message body is uploaded.

      Upload the message body in the correct format.

      +

      Upload the message body in the correct format.

      400 Bad Request

      InvalidTargetBucketForLogging

      The delivery group has no ACL permission for the target bucket.

      +

      The delivery group has no ACL permission for the target bucket.

      Configure the target bucket ACL and try again.

      +

      Configure the target bucket ACL and try again.

      400 Bad Request

      KeyTooLongError

      The provided key is too long.

      +

      The provided key is too long.

      Use a shorter key.

      +

      Use a shorter key.

      400 Bad Request

      KMS.DisabledException

      The customer master key (CMK) is disabled in SSE-KMS mode.

      +

      The customer master key (CMK) is disabled in SSE-KMS mode.

      Replace the key and try again, or contact technical support.

      +

      Replace the key and try again, or contact technical support.

      400 Bad Request

      KMS.NotFoundException

      The customer master key (CMK) does not exist in SSE-KMS mode.

      +

      The customer master key (CMK) does not exist in SSE-KMS mode.

      Retry with the correct CMK.

      +

      Retry with the correct CMK.

      400 Bad Request

      MalformedACLError

      The provided XML file is in an incorrect format or does not meet format requirements.

      +

      The provided XML file is in an incorrect format or does not meet format requirements.

      Use the correct XML format to retry.

      +

      Use the correct XML format to retry.

      400 Bad Request

      MalformedError

      The XML format in the request is incorrect.

      +

      The XML format in the request is incorrect.

      Use the correct XML format to retry.

      +

      Use the correct XML format to retry.

      400 Bad Request

      MalformedLoggingStatus

      The XML format of Logging is incorrect.

      +

      The XML format of Logging is incorrect.

      Use the correct XML format to retry.

      +

      Use the correct XML format to retry.

      400 Bad Request

      MalformedPolicy

      The bucket policy does not pass.

      +

      The bucket policy does not pass.

      Modify the bucket policy according to the error details returned in the message body.

      +

      Modify the bucket policy according to the error details returned in the message body.

      400 Bad Request

      MalformedQuotaError

      The Quota XML format is incorrect.

      +

      The Quota XML format is incorrect.

      Use the correct XML format to retry.

      +

      Use the correct XML format to retry.

      400 Bad Request

      MalformedXML

      An XML file of a configuration item is in incorrect format.

      +

      An XML file of a configuration item is in incorrect format.

      Use the correct XML format to retry.

      +

      Use the correct XML format to retry.

      400 Bad Request

      MaxMessageLengthExceeded

      Copying an object does not require a message body in the request.

      +

      Copying an object does not require a message body in the request.

      Remove the message body and retry.

      +

      Remove the message body and retry.

      400 Bad Request

      MetadataTooLarge

      The size of the metadata header has exceeded the upper limit.

      +

      The size of the metadata header has exceeded the upper limit.

      Reduce the size of the metadata header.

      +

      Reduce the size of the metadata header.

      400 Bad Request

      MissingRegion

      No region contained in the request and no default region defined in the system.

      +

      No region contained in the request and no default region defined in the system.

      Carry the region information in the request.

      +

      Carry the region information in the request.

      400 Bad Request

      MissingRequestBodyError

      This error code is returned after you send an empty XML file.

      +

      This error code is returned after you send an empty XML file.

      Provide the correct XML file.

      +

      Provide the correct XML file.

      400 Bad Request

      MissingRequiredHeader

      Required headers are missing in the request.

      +

      Required headers are missing in the request.

      Provide required headers.

      +

      Provide required headers.

      400 Bad Request

      MissingSecurityHeader

      A required header is not provided.

      +

      A required header is not provided.

      Provide required headers.

      +

      Provide required headers.

      400 Bad Request

      MultipleContentLengths

      There are multiple Content-Length headers.

      +

      There are multiple Content-Length headers.

      Check the encapsulation header or contact technical support.

      +

      Check the encapsulation header or contact technical support.

      400 Bad Request

      TooManyBuckets

      You have attempted to create more buckets than allowed.

      +

      You have attempted to create more buckets than allowed.

      Delete some buckets and try again.

      +

      Delete some buckets and try again.

      400 Bad Request

      TooManyCustomDomains

      Too many user accounts are configured.

      +

      Too many user accounts are configured.

      Delete some user accounts and try again.

      +

      Delete some user accounts and try again.

      400 Bad Request

      TooManyWrongSignature

      The request is rejected due to high-frequency errors.

      +

      The request is rejected due to high-frequency errors.

      Replace the Access Key and try again.

      +

      Replace the Access Key and try again.

      400 Bad Request

      UnexpectedContent

      The request requires a message body which is not carried by the client, or the request does not require a message body but the client carries the message body.

      +

      The request requires a message body which is not carried by the client, or the request does not require a message body but the client carries the message body.

      Try again according to the instruction.

      +

      Try again according to the instruction.

      400 Bad Request

      UserKeyMustBeSpecified

      This operation is available only to specific users.

      +

      This operation is available only to specific users.

      Contact technical support.

      +

      Contact technical support.

      403 Forbidden

      AccessDenied

      Access denied, because the request does not carry a date header or the header format is incorrect.

      +

      Access denied, because the request does not carry a date header or the header format is incorrect.

      Provide a correct date header in the request.

      +

      Provide a correct date header in the request.

      403 Forbidden

      AccessDenied

      The object you specified is immutable, can not delete.

      +

      The object you specified is immutable, can not delete.

      Wait until the WORM retention expires and then modify or delete the object.

      +

      Wait until the WORM retention expires and then modify or delete the object.

      403 Forbidden

      AccessForbidden

      Insufficient permission. No CORS configuration exists for the bucket or the CORS rule does not match.

      +

      Insufficient permission. No CORS configuration exists for the bucket or the CORS rule does not match.

      Modify the CORS configuration of the bucket or send the matched OPTIONS request based on the CORS configuration of the bucket.

      +

      Modify the CORS configuration of the bucket or send the matched OPTIONS request based on the CORS configuration of the bucket.

      403 Forbidden

      AllAccessDisabled

      You have no permission to perform the operation. The bucket name is forbidden.

      +

      You have no permission to perform the operation. The bucket name is forbidden.

      Change the bucket name.

      +

      Change the bucket name.

      403 Forbidden

      DeregisterUserId

      The user has been deregistered.

      +

      The user has been deregistered.

      Top up or re-register.

      +

      Top up or re-register.

      403 Forbidden

      InArrearOrInsufficientBalance

      The subscriber owes fees or the account balance is insufficient, and the subscriber does not have the permission to perform an operation.

      +

      The subscriber owes fees or the account balance is insufficient, and the subscriber does not have the permission to perform an operation.

      Top up.

      +

      Top up.

      403 Forbidden

      InsufficientStorageSpace

      Insufficient storage space.

      +

      Insufficient storage space.

      If the quota is exceeded, increase quota or delete some objects.

      +

      If the quota is exceeded, increase quota or delete some objects.

      403 Forbidden

      InvalidAccessKeyId

      The access key ID provided by the customer does not exist in the system.

      +

      The access key ID provided by the customer does not exist in the system.

      Provide correct access key Id.

      +

      Provide correct access key Id.

      403 Forbidden

      InvalidObjectState

      You need to restore Cold objects first before downloading them.

      +

      You need to restore Cold objects first before downloading them.

      Restore the object first.

      +

      Restore the object first.

      403 Forbidden

      NotSignedUp

      Your account has not been registered with the system. Only a registered account can be used.

      +

      Your account has not been registered with the system. Only a registered account can be used.

      Register OBS.

      +

      Register OBS.

      403 Forbidden

      RequestTimeTooSkewed

      There was a large time offset between the OBS server time and the time when the client initiated a request.

      +

      There was a large time offset between the OBS server time and the time when the client initiated a request.

      For security purposes, OBS verifies the time offset between the client and server. If the offset is longer than 15 minutes, the OBS server will reject your requests and this error message is reported.

      Check whether there is a large time offset between the client time and server time. If there is, adjust the client time based on your local time (UTC) and try again.

      +

      Check whether there is a large time offset between the client time and server time. If there is, adjust the client time based on your local time (UTC) and try again.

      403 Forbidden

      SignatureDoesNotMatch

      The provided signature does not match the signature calculated by OBS.

      +

      The provided signature does not match the signature calculated by OBS.

      Check your secret access key and signature algorithm.

      +

      Check your secret access key and signature algorithm.

      403 Forbidden

      VirtualHostDomainRequired

      Virtual hosting access domain name is not used.

      +

      Virtual hosting access domain name is not used.

      Use the virtual hosting access domain name. For details, see Constructing a Request.

      +

      Use the virtual hosting access domain name. For details, see Constructing a Request.

      403 Forbidden

      Unauthorized

      The user has not been authenticated in real name.

      +

      The user has not been authenticated in real name.

      Authenticate the user's real name and try again.

      +

      Authenticate the user's real name and try again.

      403 Forbidden

      RequestPayerDenied

      This is a requester-pays bucket.

      +

      This is a requester-pays bucket.

      Carry the header x-obs-request-payer: requester in the access request.

      +

      Carry the header x-obs-request-payer: requester in the access request.

      404 Not Found

      NoSuchBucket

      The specified bucket does not exist.

      +

      The specified bucket does not exist.

      Create a bucket and perform the operation again.

      +

      Create a bucket and perform the operation again.

      404 Not Found

      NoSuchBucketPolicy

      No bucket policy exists.

      +

      No bucket policy exists.

      Configure a bucket policy.

      +

      Configure a bucket policy.

      404 Not Found

      NoSuchCORSConfiguration

      No CORS configuration exists.

      +

      No CORS configuration exists.

      Configure CORS first.

      +

      Configure CORS first.

      404 Not Found

      NoSuchCustomDomain

      The requested user account does not exist.

      +

      The requested user account does not exist.

      Set a user account first.

      +

      Set a user account first.

      404 Not Found

      NoSuchKey

      The specified key does not exist.

      +

      The specified key does not exist.

      Upload the object first.

      +

      Upload the object first.

      404 Not Found

      NoSuchLifecycleConfiguration

      The requested lifecycle rule does not exist.

      +

      The requested lifecycle rule does not exist.

      Configure a lifecycle rule first.

      +

      Configure a lifecycle rule first.

      404 Not Found

      NoSuchUpload

      The specified multipart upload does not exist. The upload ID does not exist or the multipart upload has been terminated or completed.

      +

      The specified multipart upload does not exist. The upload ID does not exist or the multipart upload has been terminated or completed.

      Use the existing part or reinitialize the part.

      +

      Use the existing part or reinitialize the part.

      404 Not Found

      NoSuchVersion

      The specified version ID does not match any existing version.

      +

      The specified version ID does not match any existing version.

      Use a correct version ID.

      +

      Use a correct version ID.

      404 Not Found

      NoSuchWebsiteConfiguration

      The requested website does not exist.

      +

      The requested website does not exist.

      Configure the website first.

      +

      Configure the website first.

      405 Method Not Allowed

      MethodNotAllowed

      The specified method is not allowed against the requested resource.

      +

      The specified method is not allowed against the requested resource.

      The message "Specified method is not supported." is returned.

      The method is not allowed.

      +

      The method is not allowed.

      405 Method Not Allowed

      FsNotSupport

      POSIX buckets do not support this API.

      +

      POSIX buckets do not support this API.

      The method is not allowed.

      +

      The method is not allowed.

      408 Request Timeout

      RequestTimeout

      The socket connection to the server has no read or write operations within the timeout period.

      +

      The socket connection to the server has no read or write operations within the timeout period.

      Check the network and try again, or contact technical support.

      +

      Check the network and try again, or contact technical support.

      409 Conflict

      BucketAlreadyExists

      The requested bucket name already exists. The bucket namespace is shared by all users of OBS. Select another name and retry.

      +

      The requested bucket name already exists. The bucket namespace is shared by all users of OBS. Select another name and retry.

      Change the bucket name.

      +

      Change the bucket name.

      409 Conflict

      BucketAlreadyOwnedByYou

      Your previous request for creating the namesake bucket succeeded and you already own it.

      +

      Your previous request for creating the namesake bucket succeeded and you already own it.

      No more buckets need to be created.

      +

      No more buckets need to be created.

      409 Conflict

      BucketNotEmpty

      The bucket that you tried to delete is not empty.

      +

      The bucket that you tried to delete is not empty.

      Delete the objects in the bucket and then delete the bucket.

      +

      Delete the objects in the bucket and then delete the bucket.

      409 Conflict

      InvalidBucketState

      Invalid bucket status. After cross-region replication is configured, bucket versioning cannot be disabled.

      +

      Invalid bucket status. After cross-region replication is configured, bucket versioning cannot be disabled.

      Enable bucket versioning or cancel cross-region replication.

      +

      Enable bucket versioning or cancel cross-region replication.

      409 Conflict

      OperationAborted

      A conflicting operation is being performed on this resource. Retry later.

      +

      A conflicting operation is being performed on this resource. Retry later.

      Try again later.

      +

      Try again later.

      409 Conflict

      ServiceNotSupported

      The request method is not supported by the server.

      +

      The request method is not supported by the server.

      Contact technical support.

      +

      Contact technical support.

      409 ObjectNotAppendable

      ObjectNotAppendable

      The object is not appendable.

      +

      The object is not appendable.

      Check the bucket type. Parallel file systems do not support append upload. Check the object type. Cold objects are not appendable.

      +

      Check the bucket type. Parallel file systems do not support append upload. Check the object type. Cold objects are not appendable.

      411 Length Required

      MissingContentLength

      The HTTP header Content-Length is not provided.

      +

      The HTTP header Content-Length is not provided.

      Provide the Content-Length header.

      +

      Provide the Content-Length header.

      412 Precondition Failed

      PreconditionFailed

      At least one of the specified preconditions is not met.

      +

      At least one of the specified preconditions is not met.

      Modify according to the condition prompt in the returned message body.

      +

      Modify according to the condition prompt in the returned message body.

      414 URI Too Long

      Request-URI Too Large

      The URI used in the request was too long.

      +

      The URI used in the request was too long.

      Shorten the URI length.

      +

      Shorten the URI length.

      416 Client Requested Range Not Satisfiable

      InvalidRange

      The requested range cannot be obtained.

      +

      The requested range cannot be obtained.

      Retry with the correct range.

      +

      Retry with the correct range.

      500 Internal Server Error

      InternalError

      An internal error occurs. Retry later.

      +

      An internal error occurs. Retry later.

      Contact technical support.

      +

      Contact technical support.

      501 Not Implemented

      ServiceNotImplemented

      The request method is not implemented by the server.

      +

      The request method is not implemented by the server.

      Contact technical support.

      +

      Contact technical support.

      503 Service Unavailable

      ServiceUnavailable

      The server is overloaded or has internal errors.

      +

      The server is overloaded or has internal errors.

      Try later or contact technical support.

      +

      Try later or contact technical support.

      503 Service Unavailable

      SlowDown

      Too frequent requests. Reduce your request frequency.

      +

      Too frequent requests. Reduce your request frequency.

      Too frequent requests. Reduce your request frequency.

      +

      Too frequent requests. Reduce your request frequency.

      Object metadata

      Type: XML

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      CommonPrefixes

      Group information. If you specify a delimiter in the request, the response contains group information in CommonPrefixes.

      Type: XML

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      ContinuationToken

      Parameter ContinuationToken specified in a request

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      KeyCount

      Number of objects returned

      Type: integer

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      NextContinuationToken

      ContinuationToken is returned when not all the objects are listed. The next list requests can be continued with this ContinuationToken.

      Type: string

      -

      Ancestor: ListVersionsResult

      +

      Parent: ListVersionsResult

      StartAfter

      @@ -169,84 +169,84 @@ Authorization: authorization

      Parameter delimiter specified in a request

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      ETag

      Base64-encoded 128-bit MD5 digest of an object. ETag is the unique identifier of the object content. It can be used to determine whether the object content is changed. For example, if the ETag value is A when an object is uploaded, but this value has changed to B when the object is downloaded, it indicates that the object content has been changed. The ETag value is a hash of the object. The ETag reflects changes to the object content, rather than the object metadata. An uploaded object or copied object has a unique ETag after being encrypted using MD5. (If the object is encrypted on the server side, the ETag value is not the MD5 digest of the object, but the unique identifier calculated through server-side encryption.)

      Type: string

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      Type

      Object type. This parameter is returned when the object type is not Normal.

      Type: string

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      ID

      Tenant ID of the object owner

      Type: string

      -

      Ancestor: ListBucketResult.Contents.Owner

      +

      Parent: ListBucketResult.Contents.Owner

      IsTruncated

      Determines whether the returned list of objects is truncated. The value true indicates that the list was truncated and false indicates that the list was not truncated.

      Type: boolean

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      Key

      Object name

      Type: string

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      LastModified

      Time (UTC) when an object was last modified

      Type: date

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      MaxKeys

      Maximum number of objects returned

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      Name

      Name of the requested bucket

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      Owner

      User information, including the domain ID and username

      Type: XML

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      Prefix

      Prefix of an object name. Only objects whose names have this prefix are listed.

      Type: string

      -

      Ancestor: ListBucketResult

      +

      Parent: ListBucketResult

      Size

      Object size in bytes

      Type: string

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      StorageClass

      @@ -254,7 +254,7 @@ Authorization: authorization

      Storage class of an object

      Type: string

      Value options: STANDARD, WARM, COLD

      -

      Ancestor: ListBucketResult.Contents

      +

      Parent: ListBucketResult.Contents

      RetainUntilDate

      Protection period for the object. Its value is a timestamp accurate to milliseconds, for example, 1435728035000 (corresponding to 13:20:35 on July 1, 2015).

      +

      Protection period for the object. The value can be a timestamp or in the ISO format.

      +

      A timestamp must be accurate to milliseconds. For example, the timestamp for 13:20:35 on July 1, 2015 should be 1435728035000.

      +

      A time zone is required in the ISO time format. For example, the ISO UTC time for 13:20:35 on July 1, 2015 should be 2015-07-01T13:20:35Z.

      NOTE:

      The value of this field must be later than the current time and can be extended but not shortened.

      -

      Type: long

      -

      Example: 1435728035000

      -

      Remarks: Its value is a timestamp accurate to milliseconds in Unix time.

      +

      Type: string

      +

      Example: 1435728035000 (a timestamp) or 2015-07-01T13:20:35Z (in the ISO format)

      +

      Remarks: timestamp value is accurate to milliseconds in Unix time.

      Yes