diff --git a/docs/obs/api-ref/ALL_META.TXT.json b/docs/obs/api-ref/ALL_META.TXT.json index 6487747d6..f6d10ed47 100644 --- a/docs/obs/api-ref/ALL_META.TXT.json +++ b/docs/obs/api-ref/ALL_META.TXT.json @@ -14,9 +14,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Before You Start", @@ -34,9 +32,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Overview", @@ -54,9 +50,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"API Calling", @@ -74,9 +68,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Endpoints", @@ -94,9 +86,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Basic Concepts", @@ -114,9 +104,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"API Overview", @@ -134,9 +122,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Calling APIs", @@ -154,9 +140,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Constructing a Request", @@ -174,9 +158,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Authentication", @@ -194,9 +176,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"User Signature Authentication", @@ -214,9 +194,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Authentication of Signature in a Header", @@ -234,9 +212,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Authentication of Signature in a URL", @@ -249,17 +225,15 @@ "code":"13", "des":"OBS supports browser-based uploads using POST requests. Authenticating such a request uses the signature carried in the form. First, create a policy to specify the requir", "doc_type":"api", - "kw":"Authentication of Signature Carried in the Table Uploaded Through a Browser,Authentication,API Refer", + "kw":"Authenticating the Signature Carried in a Form Uploaded Through a Browser,Authentication,API Referen", "search_title":"", "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], - "title":"Authentication of Signature Carried in the Table Uploaded Through a Browser", + "title":"Authenticating the Signature Carried in a Form Uploaded Through a Browser", "githuburl":"" }, { @@ -274,9 +248,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Returned Values", @@ -294,9 +266,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Getting Started", @@ -314,9 +284,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Creating a Bucket", @@ -334,9 +302,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Listing Buckets", @@ -354,9 +320,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Uploading an Object", @@ -374,9 +338,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"APIs", @@ -394,9 +356,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Operations on Buckets", @@ -414,9 +374,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Listing Buckets", @@ -434,9 +392,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Creating a Bucket", @@ -454,9 +410,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Listing Objects in a Bucket", @@ -474,9 +428,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Listing Objects in a Bucket (V2)", @@ -494,9 +446,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Bucket Metadata", @@ -514,9 +464,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Bucket Location", @@ -534,9 +482,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting Buckets", @@ -554,9 +500,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Advanced Bucket Settings", @@ -574,9 +518,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring a Bucket Policy", @@ -594,9 +536,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Bucket Policy Information", @@ -614,9 +554,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting a Bucket Policy", @@ -634,9 +572,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring a Bucket ACL", @@ -654,9 +590,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Bucket ACL Information", @@ -674,9 +608,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Logging for a Bucket", @@ -694,9 +626,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining a Bucket Logging Configuration", @@ -714,9 +644,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Bucket Lifecycle Rules", @@ -734,9 +662,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Bucket Lifecycle Configuration", @@ -754,9 +680,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting Lifecycle Rules", @@ -774,9 +698,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Versioning for a Bucket", @@ -794,9 +716,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Bucket Versioning Status", @@ -814,9 +734,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Event Notification for a Bucket", @@ -834,9 +752,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining the Event Notification Configuration of a Bucket", @@ -854,9 +770,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Storage Class for a Bucket", @@ -874,9 +788,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Bucket Storage Class Information", @@ -894,9 +806,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Cross-Region Replication for a Bucket", @@ -914,9 +824,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining the Cross-Region Replication Configuration of a Bucket", @@ -934,9 +842,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting the Cross-Region Replication Configuration of a Bucket", @@ -954,9 +860,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Tags for a Bucket", @@ -974,9 +878,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Bucket Tags", @@ -994,9 +896,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting Tags", @@ -1014,9 +914,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Bucket Storage Quota", @@ -1034,9 +932,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Querying Bucket Storage Quota", @@ -1054,9 +950,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Storage Information of a Bucket", @@ -1074,9 +968,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Bucket Inventories", @@ -1094,9 +986,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining a Specific Inventory of a Bucket", @@ -1114,9 +1004,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Listing All Inventories of a Bucket", @@ -1134,9 +1022,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting Bucket Inventories", @@ -1147,16 +1033,14 @@ "node_id":"obs_04_0059.xml", "product_code":"obs", "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", + "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.To perfor", "doc_type":"api", "kw":"Configuring a Custom Domain Name for a Bucket,Advanced Bucket Settings,API Reference", "search_title":"", "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring a Custom Domain Name for a Bucket", @@ -1167,16 +1051,14 @@ "node_id":"obs_04_0060.xml", "product_code":"obs", "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", + "des":"OBS uses the GET method to obtain the custom domain name of a bucket.To perform this operation, the user must be the bucket owner or the bucket owner's IAM user that has ", "doc_type":"api", "kw":"Obtaining the Custom Domain Name of a Bucket,Advanced Bucket Settings,API Reference", "search_title":"", "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining the Custom Domain Name of a Bucket", @@ -1187,16 +1069,14 @@ "node_id":"obs_04_0061.xml", "product_code":"obs", "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", + "des":"OBS uses the DELETE method to delete the custom domain name of a bucket.To perform this operation, the user must be the bucket owner or the bucket owner's IAM user that h", "doc_type":"api", "kw":"Deleting the Custom Domain Name of a Bucket,Advanced Bucket Settings,API Reference", "search_title":"", "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting the Custom Domain Name of a Bucket", @@ -1214,9 +1094,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Bucket Encryption", @@ -1234,9 +1112,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Bucket Encryption Configuration", @@ -1254,9 +1130,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting the Encryption Configuration of a Bucket", @@ -1274,9 +1148,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring the Requester-Pays Function for a Bucket", @@ -1294,9 +1166,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining the Requester-Pays Configuration Information of a Bucket", @@ -1314,9 +1184,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring a Default WORM Policy for a Bucket", @@ -1334,9 +1202,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining the Default WORM Policy of a Bucket", @@ -1354,9 +1220,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Static Website Hosting", @@ -1374,9 +1238,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Static Website Hosting for a Bucket", @@ -1394,9 +1256,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining the Static Website Hosting Configuration of a Bucket", @@ -1414,9 +1274,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting the Static Website Hosting Configuration of a Bucket", @@ -1434,9 +1292,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring Bucket CORS", @@ -1454,9 +1310,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining the CORS Configuration of a Bucket", @@ -1474,9 +1328,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting the CORS Configuration of a Bucket", @@ -1494,9 +1346,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"OPTIONS Bucket", @@ -1514,9 +1364,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"OPTIONS Object", @@ -1534,9 +1382,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Operations on Objects", @@ -1554,9 +1400,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Uploading an Object - PUT", @@ -1574,9 +1418,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Uploading an Object - POST", @@ -1594,9 +1436,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Copying an Object", @@ -1614,9 +1454,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Downloading an Object", @@ -1634,9 +1472,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Querying Object Metadata", @@ -1654,9 +1490,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting an Object", @@ -1674,9 +1508,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting Objects", @@ -1694,9 +1526,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Restoring Cold Objects", @@ -1714,9 +1544,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring an Object ACL", @@ -1734,9 +1562,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Object ACL Configuration", @@ -1754,9 +1580,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Modifying Object Metadata", @@ -1774,9 +1598,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Modifying an Object", @@ -1794,9 +1616,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Truncating an Object", @@ -1814,9 +1634,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Renaming an Object", @@ -1834,17 +1652,15 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Adding Object Tags", "githuburl":"" }, { - "uri":"en-us_topic_0000001399487626.html", - "node_id":"en-us_topic_0000001399487626.xml", + "uri":"obs_04_0164.html", + "node_id":"obs_04_0164.xml", "product_code":"obs", "code":"93", "des":"This operation returns tags of an object.If you do not specify a version ID in a request, make sure that you have the GetObjectTagging permission. If you do specify a ver", @@ -1854,17 +1670,15 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Object Tags", "githuburl":"" }, { - "uri":"en-us_topic_0000001399647606.html", - "node_id":"en-us_topic_0000001399647606.xml", + "uri":"obs_04_0165.html", + "node_id":"obs_04_0165.xml", "product_code":"obs", "code":"94", "des":"This operation deletes tags from an object.If you do not specify a version ID in a request, make sure that you have the DeleteObjectTagging permission. If you do specify ", @@ -1874,9 +1688,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Deleting Object Tags", @@ -1894,9 +1706,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Configuring WORM Retention for an Object", @@ -1914,9 +1724,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Operations on Multipart Upload", @@ -1934,9 +1742,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Listing Initiated Multipart Uploads in a Bucket", @@ -1954,9 +1760,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Initiating a Multipart Upload", @@ -1974,9 +1778,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Uploading Parts", @@ -1987,16 +1789,14 @@ "node_id":"obs_04_0100.xml", "product_code":"obs", "code":"100", - "des":"After a multipart upload task is created, you can upload parts for this task using the obtained multipart upload ID. Alternatively, you can make an API call to add a part", + "des":"After a multipart upload task is created, you can upload parts for this task using the obtained multipart upload ID. Alternatively, you can make an API call to copy a par", "doc_type":"api", "kw":"Copying Parts,Operations on Multipart Upload,API Reference", "search_title":"", "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Copying Parts", @@ -2014,9 +1814,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Listing Uploaded Parts that Have Not Been Assembled", @@ -2034,9 +1832,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Completing a Multipart Upload", @@ -2054,9 +1850,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Canceling a Multipart Upload Task", @@ -2074,9 +1868,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Server-Side Encryption", @@ -2094,9 +1886,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Server-Side Encryption Overview", @@ -2114,9 +1904,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"SSE-KMS", @@ -2134,9 +1922,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"SSE-C", @@ -2154,9 +1940,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"API Operations Related to Server-Side Encryption", @@ -2174,9 +1958,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Error Codes", @@ -2194,9 +1976,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"IAM Policies and Supported Actions", @@ -2214,9 +1994,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Introduction", @@ -2234,9 +2012,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Bucket Actions", @@ -2254,9 +2030,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Object Actions", @@ -2274,9 +2048,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Appendixes", @@ -2294,9 +2066,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Status Codes", @@ -2314,9 +2084,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining Access Keys (AK/SK)", @@ -2334,9 +2102,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Obtaining a Domain ID and a User ID", @@ -2354,9 +2120,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Consistency of Concurrent Operations", @@ -2374,9 +2138,7 @@ "metedata":[ { "documenttype":"api", - "prodname":"obs", - "mdname":"Sample Code for Creating a Bucket;Sample Code for Obtaining a Bucket List;Sample Code for Uploading an Object", - "opensource":"true" + "prodname":"obs" } ], "title":"Change History", diff --git a/docs/obs/api-ref/CLASS.TXT.json b/docs/obs/api-ref/CLASS.TXT.json index d2c49eabc..981f5ba68 100644 --- a/docs/obs/api-ref/CLASS.TXT.json +++ b/docs/obs/api-ref/CLASS.TXT.json @@ -110,7 +110,7 @@ { "desc":"OBS supports browser-based uploads using POST requests. Authenticating such a request uses the signature carried in the form. First, create a policy to specify the requir", "product_code":"obs", - "title":"Authentication of Signature Carried in the Table Uploaded Through a Browser", + "title":"Authenticating the Signature Carried in a Form Uploaded Through a Browser", "uri":"obs_04_0012.html", "doc_type":"api", "p_code":"9", @@ -513,7 +513,7 @@ "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", + "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.To perfor", "product_code":"obs", "title":"Configuring a Custom Domain Name for a Bucket", "uri":"obs_04_0059.html", @@ -522,7 +522,7 @@ "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", + "desc":"OBS uses the GET method to obtain the custom domain name of a bucket.To perform this operation, the user must be the bucket owner or the bucket owner's IAM user that has ", "product_code":"obs", "title":"Obtaining the Custom Domain Name of a Bucket", "uri":"obs_04_0060.html", @@ -531,7 +531,7 @@ "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", + "desc":"OBS uses the DELETE method to delete the custom domain name of a bucket.To perform this operation, the user must be the bucket owner or the bucket owner's IAM user that h", "product_code":"obs", "title":"Deleting the Custom Domain Name of a Bucket", "uri":"obs_04_0061.html", @@ -831,7 +831,7 @@ "desc":"This operation returns tags of an object.If you do not specify a version ID in a request, make sure that you have the GetObjectTagging permission. If you do specify a ver", "product_code":"obs", "title":"Obtaining Object Tags", - "uri":"en-us_topic_0000001399487626.html", + "uri":"obs_04_0164.html", "doc_type":"api", "p_code":"77", "code":"93" @@ -840,7 +840,7 @@ "desc":"This operation deletes tags from an object.If you do not specify a version ID in a request, make sure that you have the DeleteObjectTagging permission. If you do specify ", "product_code":"obs", "title":"Deleting Object Tags", - "uri":"en-us_topic_0000001399647606.html", + "uri":"obs_04_0165.html", "doc_type":"api", "p_code":"77", "code":"94" @@ -891,7 +891,7 @@ "code":"99" }, { - "desc":"After a multipart upload task is created, you can upload parts for this task using the obtained multipart upload ID. Alternatively, you can make an API call to add a part", + "desc":"After a multipart upload task is created, you can upload parts for this task using the obtained multipart upload ID. Alternatively, you can make an API call to copy a par", "product_code":"obs", "title":"Copying Parts", "uri":"obs_04_0100.html", diff --git a/docs/obs/api-ref/en-us_topic_0000001399647606.html b/docs/obs/api-ref/en-us_topic_0000001399647606.html deleted file mode 100644 index 80605c526..000000000 --- a/docs/obs/api-ref/en-us_topic_0000001399647606.html +++ /dev/null @@ -1,80 +0,0 @@ - - -

Deleting Object Tags

-

Functions

This operation deletes tags from an object.

-

If you do not specify a version ID in a request, make sure that you have the DeleteObjectTagging permission. If you do specify a version ID in a request, make sure that you have the DeleteObjectTagging and DeleteObjectVersionTagging permissions. By default, only the object owner can perform this operation. The object owner can grant this permission to others by using a bucket or user policy.

-

OBS deletes tags from the current object version by default. You can use the versionId parameter to delete tags from any other version. If the version you are deleting tags from is a delete marker, OBS returns 404 Not Found.

-
-

Tags are not supported for files in parallel file systems.

-
-

Request Syntax

1
-2
-3
-4
DELETE /objectname?tagging&versionId=versionid  HTTP/1.1  
-Host: bucketname.obs.region.example.com
-Date: date
-Authorization: authorization string
-
-
-
-

Request Parameters

This request contains no message 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
HTTP/1.1 status_code
-x-obs-request-id: request id
-x-obs-id-2: id
-x-obs-version-id: version id
-Content-Length: length
-Date: date
-
-
-
-

Response Headers

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

-
-

Response Elements

This response contains no elements.

-
-

Error Responses

No special error responses are returned. For details, see Table 2. If the object has no tags or the tag deletion is successful, OBS returns a 204 error.

-
-

Sample Request

1
-2
-3
-4
-5
-6
DELETE /objectname?tagging&versionId=G001018455096CE600005306000000DD HTTP/1.1   
-User-Agent: curl/7.19.7    
-Host: bucketname.obs.region.example.com
-Accept: */*   
-Date: Wed, 27 Jun 2018 13:46:58 GMT   
-Authorization: authorization string
-
-
-
-

Sample Response

1
-2
-3
-4
-5
-6
HTTP/1.1 204 No Content 
-x-obs-request-id: 0002B7532E0000015BEB2C212E53A17L 
-x-obs-id-2: CqT+86nnOkB+Cv9KZoVgZ28pSgMF+uGQBUC68flvkQeq6CxoCz65wWFMNBpXvea4 
-x-obs-version-id: G001018455096CE600005306000000DD
-Content-Length: 0
-Date: Wed, 27 Jun 2018 13:46:58 GMT
-
-
-
-
-
- -
- diff --git a/docs/obs/api-ref/en-us_topic_0031051947.html b/docs/obs/api-ref/en-us_topic_0031051947.html index 06346817f..f8556f96c 100644 --- a/docs/obs/api-ref/en-us_topic_0031051947.html +++ b/docs/obs/api-ref/en-us_topic_0031051947.html @@ -4,6 +4,10 @@

Welcome to the Object Storage Service API Reference. Object Storage Service (OBS) provides massive, secure, reliable, and cost-effective data storage capabilities for users to store data of any type and size. It is suitable for scenarios such as enterprise backup/archiving, video on demand (VoD), and video surveillance.

This document describes how to use application programming interfaces (APIs) to perform operations on OBS, such as creating, modifying, and deleting bucket, as well as uploading, downloading, and deleting objects. For details about all supported operations, see API Overview.

Before calling OBS APIs, ensure that you have fully understood relevant concepts. For details, see Basic Concepts.

+

OBS provides Representational State Transfer (REST) APIs that you can call by making HTTP or HTTPS requests. For details, see Calling APIs.

+

Endpoints

An endpoint is a request address for calling an API. Endpoints vary depending on services and regions. For the endpoints of all services, see Regions and Endpoints.

+

OBS provides a different second-level domain name for each region. You can use the domain names provided by OBS or define your own domain names to access OBS.

+
diff --git a/docs/obs/api-ref/obs_04_0005.html b/docs/obs/api-ref/obs_04_0005.html index 0ca799c77..7cfeb116c 100644 --- a/docs/obs/api-ref/obs_04_0005.html +++ b/docs/obs/api-ref/obs_04_0005.html @@ -343,7 +343,7 @@

Restoring Cold Objects

-

Restores objects from the Cold storage class.

+

Restores objects from the Cold storage class.

Configuring an Object ACL

@@ -381,12 +381,12 @@

Adds tags to an object.

-

Obtaining Object Tags

+

Obtaining Object Tags

Obtains tags of an object.

-

Deleting Object Tags

+

Deleting Object Tags

Deletes tags of an object.

@@ -424,7 +424,7 @@

Copying Parts

-

Copies part or all of an existing object as a part.

+

Copies an object or its part as a part of a multipart upload task.

Listing Uploaded Parts that Have Not Been Assembled

diff --git a/docs/obs/api-ref/obs_04_0008.html b/docs/obs/api-ref/obs_04_0008.html index 461610b77..e23ec5528 100644 --- a/docs/obs/api-ref/obs_04_0008.html +++ b/docs/obs/api-ref/obs_04_0008.html @@ -10,7 +10,7 @@ - diff --git a/docs/obs/api-ref/obs_04_0009.html b/docs/obs/api-ref/obs_04_0009.html index 751fb0634..3d78f6e3e 100644 --- a/docs/obs/api-ref/obs_04_0009.html +++ b/docs/obs/api-ref/obs_04_0009.html @@ -4,7 +4,7 @@

OBS signs a request using AK/SK. When a client is sending a request to OBS, the message header must contain the SK, request time, request type, and other information of the signature.

A user can obtain the AK and SK from IAM. For details, see Obtaining Access Keys (AK/SK).

-

OBS provides three signature calculation methods based on application scenarios: Authentication of Signature in a Header, Authentication of Signature in a URL, and Authentication of Signature Carried in the Table Uploaded Through a Browser.

+

OBS provides three signature calculation methods based on application scenarios: Authentication of Signature in a Header, Authentication of Signature in a URL, and Authenticating the Signature Carried in a Form Uploaded Through a Browser.

The SDK provided by OBS integrates signature calculation. It is recommended that you use the SDK for development.

Table 1 shows the user signature verification process in which a signature is carried in a header. For details about the parameters and code examples of authentication of signature in a header, see Authentication of Signature in a Header.

diff --git a/docs/obs/api-ref/obs_04_0010.html b/docs/obs/api-ref/obs_04_0010.html index efff9a8ac..118d2d384 100644 --- a/docs/obs/api-ref/obs_04_0010.html +++ b/docs/obs/api-ref/obs_04_0010.html @@ -45,7 +45,7 @@

CanonicalizedHeaders

-

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-*. When calling an API, choose a header that is supported by the API as required.

+

HTTP request headers that start with x-obs-, such as x-obs-date, x-obs-acl, and x-obs-meta-*. When calling an API, choose a header that is supported by the API as required.

  1. All characters of keywords in a request header field must be converted to lowercase letters (content values must be case sensitive, for example, x-obs-storage-class:STANDARD). If a request contains multiple header fields, these fields should be organized by keyword 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. See Table 4.
@@ -250,7 +250,7 @@
-
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 = Base64( HMAC-SHA1( YourSecretAccessKeyID, UTF-8-Encoding-Of( StringToSign ) ) )
+
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 = Base64( HMAC-SHA1( Your_SK, UTF-8-Encoding-Of( StringToSign ) ) )
For example, to create a private bucket named newbucketname2 in a region, the format of a client request is as follows:
PUT / HTTP/1.1 
 Host: newbucketname2.obs.region.example.com
@@ -726,7 +726,7 @@ Authorization: OBS UDSIAMSTUBTEST000254:ydH8ffpcbS6YpeOMcEZfn0wE90c=
 
 # 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')
+Your_SK = os.getenv('OTCCLOUD_SDK_SK')
 httpMethod = "PUT"
 contentType = "application/xml"
 # "date" is the time when the request was actually generated
@@ -735,10 +735,10 @@ Authorization: OBS UDSIAMSTUBTEST000254:ydH8ffpcbS6YpeOMcEZfn0wE90c=
 CanonicalizedResource = "/newbucketname2"
 canonical_string = httpMethod + "\n" + "\n" + contentType + "\n" + date + "\n" + canonicalizedHeaders + CanonicalizedResource
 if IS_PYTHON2:    
-    hashed = hmac.new(yourSecretAccessKeyID, canonical_string, hashlib.sha1)    
+    hashed = hmac.new(Your_SK, canonical_string, hashlib.sha1)    
     encode_canonical = binascii.b2a_base64(hashed.digest())[:-1]
 else:    
-    hashed = hmac.new(yourSecretAccessKeyID.encode('UTF-8'), canonical_string.encode('UTF-8'), hashlib.sha1)    
+    hashed = hmac.new(Your_SK.encode('UTF-8'), canonical_string.encode('UTF-8'), hashlib.sha1)    
     encode_canonical = binascii.b2a_base64(hashed.digest())[:-1].decode('UTF-8')
 
 print(encode_canonical)
diff --git a/docs/obs/api-ref/obs_04_0011.html b/docs/obs/api-ref/obs_04_0011.html
index 10fd110dd..f3350abac 100644
--- a/docs/obs/api-ref/obs_04_0011.html
+++ b/docs/obs/api-ref/obs_04_0011.html
@@ -28,7 +28,7 @@ Host: bucketname.obs.region.example.com<
 
 

Expires

-

When the URL expires, in UTC (how many seconds have elapsed since 00:00:00 UTC on January 1, 1970)

+

When the URL expires, measured as a Unix timestamp (how many seconds elapsed since 00:00:00 on January 1, 1970). After the specified time elapses, the URL expires.

Type: string

Yes

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

CanonicalizedHeaders

-

HTTP request headers that start with x-obs-, such as x-obs-date, x-obs-acl, and x-obs-meta-*.

+

HTTP request headers that start with x-obs-, such as x-obs-date, x-obs-acl, and x-obs-meta-*.

  1. All characters in a header name must be lower-case. Multiple header names are sorted in alphabetical order.
  2. If a header has more than one value, combine them using commas (,). For example, x-obs-meta-name:name1 and x-obs-meta-name:name2 need to be written as x-obs-meta-name:name1,name2.
  3. Non-ASCII or unrecognizable characters are not allowed for header names and also not recommended for header values. If such characters are required, encode or decode them on the client using URL or Base64. The server does not perform decoding.
  4. Delete meaningless spaces or tabs in a header. For example, x-obs-meta-name: name (there is a meaningless space before the second name) must be changed to x-obs-meta-name:name.
  5. Each header occupies a separate line.
@@ -111,7 +111,7 @@ Host: bucketname.obs.region.example.com<

Use hash-based message authentication code (HMAC) to calculate the signature based on the StringToSign and SK:

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

Compared with the Authorization header method:

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

Calculation rule of the signature

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

Calculate the signature and use the host as the prefix of the URL to generate a predefined URL:

http(s)://examplebucket.obs.region.example.com/objectkey?AccessKeyId=AccessKeyID&Expires=1532779451&Signature=0Akylf43Bm3mD1bh2rM3dmVp1Bo%3D

If you enter the address in the browser, then the object objectkey in the examplebucket bucket can be downloaded. The validity period of this link is 1532779451 (indicating Sat Jul 28 20:04:11 CST 2018).

diff --git a/docs/obs/api-ref/obs_04_0012.html b/docs/obs/api-ref/obs_04_0012.html index 616b5be28..6bff0c1d6 100644 --- a/docs/obs/api-ref/obs_04_0012.html +++ b/docs/obs/api-ref/obs_04_0012.html @@ -1,11 +1,11 @@ -

Authentication of Signature Carried in the Table Uploaded Through a Browser

+

Authenticating the Signature Carried in a Form Uploaded Through a Browser

OBS supports browser-based uploads using POST requests. Authenticating such a request uses the signature carried in the form. First, create a policy to specify the requirements for requests, such as bucket name or object name prefix. Then, create a signature based on this policy. The request form to be signed must contain a valid signature and policy. Finally, create a form 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 ) )
+Signature = Base64( HMAC-SHA1( Your_SK, StringToSign ) )

The content of the policy is as follows:

{ "expiration": "2017-12-31T12:00:00.000Z",
   "conditions": [
diff --git a/docs/obs/api-ref/obs_04_0017.html b/docs/obs/api-ref/obs_04_0017.html
index 0a410e108..85f0f0eed 100644
--- a/docs/obs/api-ref/obs_04_0017.html
+++ b/docs/obs/api-ref/obs_04_0017.html
@@ -7,6 +7,8 @@
 

Prerequisites

  • You have obtained the AK and SK. For details, see Obtaining Access Keys (AK/SK).
  • At least one bucket is available.
  • The file to be uploaded has been prepared and you know the complete local path of the file.
  • You have obtained the region of the bucket which you want to upload files to and determined the endpoint required for API calls. For details, see Regions and Endpoints.

Uploading the Object objecttest1 to Bucket bucket001 in the a1 Region

In this example, an Apache HttpClient is used.

+

If the contentType parameter in the sample code is left blank, the parameter in the signature header must also be left blank during signature calculation. Otherwise, a signature mismatch error is reported.

+
- @@ -83,7 +83,7 @@ Authorization: authorization @@ -116,12 +116,12 @@ Authorization: authorization @@ -133,12 +133,12 @@ Authorization: authorization @@ -151,11 +151,11 @@ Authorization: authorization @@ -168,11 +168,11 @@ Authorization: authorization @@ -185,11 +185,11 @@ Authorization: authorization @@ -201,7 +201,7 @@ Authorization: authorization
  1
   2
   3
diff --git a/docs/obs/api-ref/obs_04_0020.html b/docs/obs/api-ref/obs_04_0020.html
index 4f0ef9282..75c84ff4f 100644
--- a/docs/obs/api-ref/obs_04_0020.html
+++ b/docs/obs/api-ref/obs_04_0020.html
@@ -14,7 +14,7 @@ Authorization: authorization
 

Regardless of the endpoint you specified, a list of buckets spanning all regions is returned.

-

Do not list buckets during bucket creation.

+

When creating a bucket, do not list buckets.

Request Parameters

This request contains no parameters.

@@ -164,7 +164,9 @@ Content-Length: length 3 4 5 -6
GET / HTTP/1.1
+6
+7
GET /
+ HTTP/1.1
 User-Agent: curl/7.29.0
 Host: obs.region.example.com
 Accept: */*
diff --git a/docs/obs/api-ref/obs_04_0021.html b/docs/obs/api-ref/obs_04_0021.html
index 91f90e0bd..a2da04e65 100644
--- a/docs/obs/api-ref/obs_04_0021.html
+++ b/docs/obs/api-ref/obs_04_0021.html
@@ -2,7 +2,7 @@
 
 

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 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.
+
  • 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. After WORM is enabled, you can configure retention policies for objects you upload to the bucket. For more information, see Configuring a Default WORM Policy for a Bucket. When you create a bucket with WORM enabled, OBS automatically enables versioning for the bucket, which cannot be suspended. 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.

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

Mandatory (Yes/No)

Description

+

Description

Explanation:

Grants the read permission to all users in a specified domain. It allows you to list objects in a bucket, list multipart tasks in a bucket, list multi-version objects in a bucket, and obtain bucket metadata.

Example: x-obs-grant-read:id=tenant-ID

-

Restrictions:

+

Restrictions:

None

Value range:

id=tenant-ID. For details, see Obtaining a Domain ID and a User ID.

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

Explanation:

Grants the WRITE permission to all users in a specified domain to create, delete, and overwrite all objects in a bucket; and initiate multipart uploads, upload parts, copy parts, assemble parts, and cancel multipart uploads.

Example: x-obs-grant-write:id=tenant-ID

-

Restrictions:

+

Restrictions:

None

-

Value range:

+

Value range:

id=tenant-ID. For details, see Obtaining a Domain ID and a User ID.

-

Default value:

+

Default value:

None

Explanation:

Grant the READ_ACP permission to all users in a specified domain to allow them to read the bucket ACL.

-

Example: x-obs-grant-read-acp:id=Account ID

-

Restrictions:

+

Example: x-obs-grant-read-acp:id=Account ID

+

Restrictions:

None

-

Value range:

+

Value range:

id=tenant-ID. For details, see Obtaining a Domain ID and a User ID.

-

Default value:

+

Default value:

None

Explanation:

Grants the WRITE_ACP permission to all users in a specified domain to allow them to modify the bucket ACL.

-

Example: x-obs-grant-write-acp:id=Account ID

-

Restrictions:

+

Example: x-obs-grant-write-acp:id=Account ID

+

Restrictions:

None

-

Value range:

+

Value range:

id=tenant-ID. For details, see Obtaining a Domain ID and a User ID.

-

Default value:

+

Default value:

None

Explanation:

Grants the FULL_CONTROL permission to all users in a specified domain.

Example: x-obs-grant-full-control:id=tenant-ID

-

Restrictions:

+

Restrictions:

None

-

Value range:

+

Value range:

id=tenant-ID. For details, see Obtaining a Domain ID and a User ID.

-

Default value:

+

Default value:

None

Explanation:

Grants the READ permission to all users in a specified domain. By default, the read permission is granted on all objects in the bucket.

Example: x-obs-grant-read-delivered:id=tenant-ID

-

Restrictions:

+

Restrictions:

None

Value range:

id=tenant-ID. For details, see Obtaining a Domain ID and a User ID.

-

Default value:

+

Default value:

None

Explanation:

Grants the FULL_CONTROL permission to all users in a specified domain. By default, the FULL_CONTROL permission is granted on all objects in the bucket.

Example: x-obs-grant-full-control-delivered:id=tenant-ID

-

Restrictions:

+

Restrictions:

None

-

Value range:

+

Value range:

id=tenant-ID. For details, see Obtaining a Domain ID and a User ID.

-

Default value:

+

Default value:

None

Explanation:

This header can be carried when you want to create a parallel file system.

-

Example: x-obs-fs-file-interface:Enabled

+

Example: x-obs-fs-file-interface:Enabled

Value range:

Enabled

Default value:

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

Explanation:

When creating a bucket, you can use this header to enable WORM for the bucket.

-

Example: x-obs-bucket-object-lock-enabled:true

+

Example: x-obs-bucket-object-lock-enabled:true

Restrictions:

Only object buckets are supported.

Value range:

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

Request Elements

This request can use additional elements. For details about additional elements, see Table 2.

-
- - - - - - - - - + + + + + + + + + + + + + + + + + + + +
Table 2 Additional request elements

Element

+
@@ -250,9 +250,9 @@ Authorization: authorization - - - @@ -135,11 +135,11 @@ Content-Length: length @@ -153,9 +153,9 @@ Content-Length: length

Grantee information

Restrictions:

None

-

Value range:

+

Value range:

None

-

Default value:

+

Default value:

None

@@ -214,7 +214,7 @@ Content-Length: length
Table 2 Additional request elements

Element

Type

Explanation:

Specifies the region where a bucket will be created.

-
  • When creating a bucket using the endpoint of the default region, note the following:
    • If Location is not specified, the bucket is created in the default region.
    • If Location is specified to other region, the bucket is created in the specified region.
    -
  • When creating a bucket using the endpoint of a non-default region, Location must be specified to the region corresponding to the endpoint.
-

Restrictions:

+
  • When creating a bucket using the endpoint of the default region, note the following:
    • If Location is not specified, the bucket is created in the default region.
    • If Location is specified to other region, the bucket is created in the specified region.
    +
  • When creating a bucket using the endpoint of a non-default region, Location must be specified to the region corresponding to the endpoint.
+

Restrictions:

If the used endpoint is obs.otc.t-systems.com, this parameter is not required. If any other endpoint is used, this parameter is required.

Value range:

For details about OBS regions and endpoints, see Regions and Endpoints.

diff --git a/docs/obs/api-ref/obs_04_0022.html b/docs/obs/api-ref/obs_04_0022.html index 3e0ea7222..e4d927082 100644 --- a/docs/obs/api-ref/obs_04_0022.html +++ b/docs/obs/api-ref/obs_04_0022.html @@ -94,9 +94,9 @@ Authorization: authorization

No

Explanation:

-

Separator used to group object names. If a prefix is specified, objects with the same string from the prefix to the first delimiter are grouped into one CommonPrefixes. If no prefix is specified, objects with the same string from the first character to the first delimiter are grouped into one CommonPrefixes.

-

For example, there are three objects (abcd, abcde, and bbcde) in a bucket. If delimiter is set to d and prefix is set to a, objects abcd and abcde are grouped into a CommonPrefixes with abcd as the prefix. If only delimiter is set to d, objects abcd and abcde are grouped into a CommonPrefixes with abcd as the prefix, and bbcde is grouped separately into another CommonPrefixes with bbcd as the prefix.

-

For a parallel file system, if this parameter is not specified, all the content in the directory is recursively listed by default, and subdirectories are also listed. In big data scenarios, parallel file systems usually have deep directory levels and each directory has a large number of files. In such case, you are advised to configure [delimiter=/] to list the content in the current directory, but not list subdirectories, thereby improving the listing efficiency.

+

Separator used to group object names. If a prefix is specified, objects with the same string from the prefix to the first delimiter are grouped into one CommonPrefixes. If no prefix is specified, objects with the same string from the first character to the first delimiter are grouped into one CommonPrefixes.

+

For example, there are three objects (abcd, abcde, and bbcde) in a bucket. If delimiter is set to d and prefix is set to a, objects abcd and abcde are grouped into a CommonPrefixes with abcd as the prefix. If only delimiter is set to d, objects abcd and abcde are grouped into a CommonPrefixes with abcd as the prefix, and bbcde is grouped separately into another CommonPrefixes with bbcd as the prefix.

+

For a parallel file system, if this parameter is not specified, all the content in the directory is recursively listed by default, and subdirectories are also listed. In big data scenarios, parallel file systems usually have deep directory levels and each directory has a large number of files. In such case, you are advised to configure [delimiter=/] to list the content in the current directory, but not list subdirectories, thereby improving the listing efficiency.

Restrictions:

None

Value range:

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

Explanation:

A list of objects in a bucket

-

Restrictions:

+

Restrictions:

None

Value range:

None

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

Parent: ListBucketResult

Restrictions:

None

-

Value range:

+

Value range:

The value can contain 1 to 1,024 characters.

Default value:

None

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

String

Explanation:

-

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.

+

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.

Parent: ListBucketResult.Contents

Restriction:

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.

-

Value range:

+

Value range:

The value must contain 32 characters.

Default value:

None

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

Explanation:

Whether all results are returned in the response.

Parent: ListBucketResult

-

Restrictions:

+

Restrictions:

None

Value range:

  • true: Not all results are returned.
  • false: All results are returned.
@@ -331,13 +331,13 @@ Authorization: authorization

String

Explanation:

+

Explanation:

Name of the object to start with when listing objects in a bucket. All objects following this object are listed in lexicographical order by object name.

Assume that you have the following objects: test/a, test/b, test/c, and test/d. If you specify test/b as the marker, test/c and test/d are returned.

Parent: ListBucketResult

Restrictions:

None

-

Value range:

+

Value range:

The value can contain 1 to 1,024 characters.

Default value:

None

@@ -348,9 +348,9 @@ Authorization: authorization

String

Explanation:

-

The last object in the returned list. This parameter is returned when not all the objects are listed. You can set the Marker value to list the remaining objects in follow-up requests.

+

The last object in the returned list. This parameter is returned when not all the objects are listed. You can set the Marker value to list the remaining objects in follow-up requests.

Parent: ListBucketResult

-

Restrictions:

+

Restrictions:

None

Value range:

An object name string

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

String

Explanation:

+

Explanation:

The maximum number of objects returned in the response in alphabetical order

Parent: ListBucketResult

Restrictions:

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

String

Explanation:

+

Explanation:

Bucket name

Parent: ListBucketResult

Restrictions:

@@ -469,7 +469,7 @@ Authorization: authorization
- @@ -511,7 +511,7 @@ Authorization: authorization - - - - @@ -635,9 +635,9 @@ Authorization: authorization

Parent: ListVersionsResult

Restrictions:

None

-

Value range:

+

Value range:

None

-

Default value:

+

Default value:

None

@@ -645,12 +645,12 @@ Authorization: authorization - @@ -690,13 +690,13 @@ Authorization: authorization - - @@ -174,7 +174,7 @@ Date: date - diff --git a/docs/obs/api-ref/obs_04_0027.html b/docs/obs/api-ref/obs_04_0027.html index 3f6d1dc8e..f3176a93a 100644 --- a/docs/obs/api-ref/obs_04_0027.html +++ b/docs/obs/api-ref/obs_04_0027.html @@ -297,6 +297,69 @@ Server: OBS
Table 3 Elements in the response message for listing versioned objects

Parameter

Type

+

Type

Description

Explanation:

Name prefix that the objects to be listed must contain.

-

Assume that you have the following objects: logs/day1, logs/day2, logs/day3, and ExampleObject.jpg. If you specify logs/ as the prefix, logs/day1, logs/day2, and logs/day3 will be returned. If you leave this parameter blank and there are also no other filters specified, all objects in the bucket will be returned.

+

Assume that you have the following objects: logs/day1, logs/day2, logs/day3, and ExampleObject.jpg. If you specify logs/ as the prefix, logs/day1, logs/day2, and logs/day3 will be returned. If you leave this parameter blank and there are also no other filters specified, all objects in the bucket will be returned.

Parent: ListVersionsResult

Restrictions:

The prefix you specified must already exist in the bucket.

@@ -525,9 +525,9 @@ Authorization: authorization

String

Explanation:

+

Explanation:

Name of the object to start with when listing objects in a bucket. All objects following this object are listed in lexicographical order by object name.

-

Assume that you have the following objects: test/a, test/b, test/c, and test/d. If you specify test/b as the marker, test/c and test/d are returned.

+

Assume that you have the following objects: test/a, test/b, test/c, and test/d. If you specify test/b as the marker, test/c and test/d are returned.

Parent: ListVersionsResult

Restrictions:

This parameter is used only for listing versioned objects.

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

String

Explanation:

+

Explanation:

Version ID to start with when listing versioned objects, which is consistent with that set in the request

Restrictions:

This parameter is used only for listing versioned objects.

@@ -555,8 +555,8 @@ Authorization: authorization

String

Explanation:

-

Start position when listing versioned objects in the next request. 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.

+

Explanation:

+

Start position when listing versioned objects in the next request. 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.

Parent: ListVersionsResult

Restrictions:

None

@@ -570,14 +570,14 @@ Authorization: authorization

String

Explanation:

-

Version ID to start with when listing versioned objects in the next request. It is used with the nextKeyMarker parameter. 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.

+

Explanation:

+

Version ID to start with when listing versioned objects in the next request. It is used with the nextKeyMarker parameter. 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.

Parent: ListVersionsResult

Restrictions:

This parameter is used only for listing versioned objects.

Value range:

The value must contain 32 characters.

-

Default value:

+

Default value:

None

String

Explanation:

+

Explanation:

Name of the versioned object. An object is uniquely identified by an object name in a bucket. An object name is a complete path that does not contain the bucket name.

Parent: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

Restrictions:

None

-

Value range:

+

Value range:

The value can contain 1 to 1,024 characters.

Default value:

None

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

None

Value range:

The value must contain 32 characters.

-

Default value:

+

Default value:

None

Date

Explanation:

+

Explanation:

Time (UTC) when an object was last modified

Parent: ListVersionsResult.Version | ListVersionsResult.DeleteMarker

Restrictions:

The date is in the ISO8601 format.

Example: 2018-01-01T00:00:00.000Z

-

Value range:

+

Value range:

None

Default value:

None

@@ -706,12 +706,12 @@ Authorization: authorization

String

Explanation:

-

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.

+

Explanation:

+

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.

Parent: ListVersionsResult.Version

Restrictions:

None

-

Value range:

+

Value range:

The value must contain 32 characters.

Default value:

None

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

Explanation:

Name of the object owner

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

-

Restrictions:

+

Restrictions:

None

Value range:

None

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

String

Explanation:

-

Indicates a different prefix in the group information in CommonPrefixes.

+

Indicates a different prefix in the group information in CommonPrefixes.

Parent: ListVersionsResult.CommonPrefixes

Restrictions:

The prefix you specified must already exist in the bucket.

diff --git a/docs/obs/api-ref/obs_04_0023.html b/docs/obs/api-ref/obs_04_0023.html index ef2691a72..45db95323 100644 --- a/docs/obs/api-ref/obs_04_0023.html +++ b/docs/obs/api-ref/obs_04_0023.html @@ -133,10 +133,10 @@ Date: date

Explanation:

Whether it is a parallel file system

-

Restrictions:

+

Restrictions:

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

Value range:

-

The value can be Enabled (parallel file system).

+

The value can be Enabled (parallel file system).

Default value:

None

Integer

Explanation:

-

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.

Restrictions:

None

Value range:

@@ -188,7 +188,7 @@ Date: date

String

Explanation:

-

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.

Restrictions:

None

Value range:

@@ -201,13 +201,13 @@ Date: date

String

Explanation:

+

Explanation:

ExposeHeader in the CORS rules of the bucket. It specifies additional headers allowed in the response by a CORS rule, which are used to provide extra information to clients. By default, a browser can access only headers Content-Length and Content-Type. If the browser needs to access other headers, you need to configure them in this parameter.

Restrictions:

Spaces, wildcard characters (*), ampersands (&), colons (:), less-than signs (<), and full-width characters are not allowed.

Value range:

None

-

Default value:

+

Default value:

None

+

Sample Request 5

Granting permissions to a specified agency

+

The tenant whose account ID is 783fc6652cf246c096ea836694f71855 has an agency named exampleAgency. This example grants the agency the permission to view logs of the logging.bucket bucket.

+

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
PUT /?policy HTTP/1.1
+Host: examplebucket.obs.region.example.com
+Date: WED, 01 Jul 2015 02:32:25 GMT
+Authorization: OBS H4IPJX0TQTHTHEBQQCEC:jZiAT8Vx4azWEvPRMWi0X5BpJMA=
+
+{
+    "Statement": [
+        {
+            "Sid": "Stmt1375240018061",
+            "Action": [
+                "GetBucketLogging"
+            ],
+            "Effect": "Allow",
+            "Resource": "logging.bucket",
+            "Principal": {
+                "ID": [
+                    "domain/783fc6652cf246c096ea836694f71855:agency/exampleAgency"
+                ]
+            }
+        }
+    ]
+}
+
+
+
+

Sample Response 5

1
+2
+3
+4
+5
+6
HTTP/1.1 204 No Content 
+x-obs-request-id: A603000001604A7DFE4A4AF31E301891
+x-obs-id-2: BKOvGmTlt6sda5X4G89PuMO4fabObGYmnpRGkaMba1LqPt0fCACEuCMllAObRK1n
+Date: WED, 01 Jul 2015 02:34:34 GMT
+Content-Length: 0
+Server: OBS
+
+
+

Yes

Explanation:

-

Tenant ID of the grantee.

+

Account ID of the authorized user.

Restrictions:

None

-

Value range:

+

Value range:

None

-

Default value:

+

Default value:

None

Explanation:

Container for the grantee and the granted permissions

-

Restrictions:

+

Restrictions:

A single bucket can contain at most 100 grants in its ACL.

-

Value range:

+

Value range:

None

-

Default value:

+

Default value:

None

Yes

Explanation:

-

Indicates an ACL, which consists of three elements: Grant, Grantee, and Permission.

+

Indicates an ACL, which consists of three elements: Grant, Grantee, and Permission.

Restrictions:

None

Value range:

diff --git a/docs/obs/api-ref/obs_04_0032.html b/docs/obs/api-ref/obs_04_0032.html index bb1f06726..fa4196230 100644 --- a/docs/obs/api-ref/obs_04_0032.html +++ b/docs/obs/api-ref/obs_04_0032.html @@ -1,7 +1,7 @@

Configuring Logging for a Bucket

-

Functions

When a bucket is created, the logging function is not enabled by default. To generate logs recording operations on buckets, you need to enable the logging function for the bucket. After the logging function is enabled, a log is generated for each operation on a bucket and multiple logs are packed into a log file. When enabling the logging function, you need to specify a location where log files are stored. They can be stored in the bucket for which the logging is enabled, or in other buckets that you have the required permissions. However, the bucket where log files are stored and the bucket for which the logging is enabled must be in the same region.

+

Functions

When a bucket is created, the logging function is not enabled by default. To generate logs recording operations on buckets, you need to enable the logging function for the bucket. After the logging function is enabled, a log is generated for each operation on a bucket and multiple logs are packed into a log file. The target bucket for storing log files must be specified when logging is enabled. It can be the bucket logging is enabled for, or any other bucket you have access to. If you specify another bucket for storing logs, the bucket must be in the same region as the logged bucket.

Log files are generated by OBS and uploaded to the bucket where logs are stored. Therefore, OBS needs to be authorized to upload generated log files. Before configuring the logging function, you need to create an agency for OBS in IAM, the agency name is configured as a parameter of the bucket, and the logging function must be configured under the LoggingEnabled tag in the XML file. You only need to authorize the agency with the upload permissions for the target bucket.

Example of agency permissions

{
@@ -167,7 +167,7 @@ Authorization: signatureValue
 
  • <TargetPrefix> is the log name prefix specified by the user.
  • YYYY-mm-DD-HH-MM-SS indicates the date and time when the log is generated.
  • <UniqueString> indicates a character string generated by OBS.
-

The following is an example of a log file name:

+

The following is an example of a log object name:

1
bucket-log2015-06-29-12-22-07-N7MXLAF1BDG7MPDV
 
diff --git a/docs/obs/api-ref/obs_04_0034.html b/docs/obs/api-ref/obs_04_0034.html index 0db6e27da..e8bdf0fad 100644 --- a/docs/obs/api-ref/obs_04_0034.html +++ b/docs/obs/api-ref/obs_04_0034.html @@ -2,7 +2,7 @@

Configuring Bucket Lifecycle Rules

Functions

This operation configures lifecycle rules that can delete or migrate objects from a bucket at a specified time. Typical application scenarios:

-
  • Delete periodically uploaded files. Some files uploaded periodically need only to be retained for only one week or one month.
  • Delete files that are frequently accessed within a certain period of time but are seldom accessed afterward. You can archive these files and then schedule the time for deletion.
  • The minimum time for the transition of the bucket storage to Warm or Cold can be configured. The value ranges from 24 to 8640.
+
  • Delete periodically uploaded files. Some files uploaded periodically need only to be retained for only one week or one month.
  • Delete files that are frequently accessed within a certain period of time but are seldom accessed afterward. You can archive these files and then schedule the time for deletion.

You can perform this operation to create or update the lifecycle configuration of a bucket.

  • Expired objects deleted based on a lifecycle rule cannot be recovered.
@@ -49,7 +49,14 @@ 36 37 38 -39
PUT /?lifecycle HTTP/1.1 
+39
+40
+41
+42
+43
+44
+45
+46
PUT /?lifecycle HTTP/1.1 
 Host: bucketname.obs.region.example.com
 Content-Length: length
 Date: date
@@ -59,6 +66,13 @@ Content-MD5: MD5
 <LifecycleConfiguration> 
     <Rule> 
         <ID>id</ID> 
+        <Filter>
+            <And>
+                <Prefix>prefix</Prefix> 
+                <Tag><Key>key1</Key><Value>value1</Value></Tag>
+                <Tag><Key>key2</Key><Value>value2</Value></Tag>
+            </And>
+        </Filter>
         <Prefix>prefix</Prefix> 
         <Status>status</Status> 
         <Expiration> 
@@ -117,7 +131,7 @@ Content-MD5: MD5
 

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. If NoncurrentDays is set to 1 in an object deletion scenario, an object version will be deleted one day after it becomes historical. 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 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. If NoncurrentDays is set to 1 in an object deletion scenario, an object version will be deleted one day after it becomes historical. 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.

        • Versioning suspended:

          If the latest version of the object does not have the DeleteMarker and is not the null version, the object generates a new DeleteMarker for the null version.

          @@ -142,7 +156,7 @@ Content-MD5: MD5

          Type: string

          Parent: Expiration, Transition

Required if the Days element is absent.

+

Yes if the Days element is absent.

Days

@@ -151,7 +165,7 @@ Content-MD5: MD5

Type: integer

Parent: Expiration, Transition

Required if the Date element is absent.

+

Yes if the Date element is absent.

StorageClass

@@ -161,7 +175,7 @@ Content-MD5: MD5

Value options: WARM, COLD

Parent: Transition, NoncurrentVersionTransition

Required if the Transition or NoncurrentVersionTransition element is present.

+

Yes if the Transition or NoncurrentVersionTransition element is present.

Transition

@@ -171,7 +185,7 @@ Content-MD5: MD5

Child: Date or Days, StorageClass

Parent: Rule

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

+

Yes if the NoncurrentVersionTransition, Expiration, AbortIncompleteMultipartUpload, and NoncurrentVersionExpiration elements are absent.

Expiration

@@ -181,7 +195,7 @@ Content-MD5: MD5

Child: Date or Days

Parent: Rule

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

+

Yes if Transition, NoncurrentVersionTransition, AbortIncompleteMultipartUpload, and NoncurrentVersionExpiration are absent.

ID

@@ -209,7 +223,7 @@ Content-MD5: MD5

Type: integer

Parent: NoncurrentVersionExpiration, NoncurrentVersionTransition

Required if the NoncurrentVersionExpiration or NoncurrentVersionTransition element is present.

+

Yes if the NoncurrentVersionExpiration or NoncurrentVersionTransition element is present.

NoncurrentVersionTransition

@@ -219,7 +233,7 @@ Content-MD5: MD5

Child: NoncurrentDays, StorageClass

Parent: Rule

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

+

Yes if the Transition, Expiration, AbortIncompleteMultipartUpload, and NoncurrentVersionExpiration elements are absent.

NoncurrentVersionExpiration

@@ -241,7 +255,7 @@ Content-MD5: MD5
NOTE:

AbortIncompleteMultipartUpload does not support filtering by tag.

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

+

Yes if the Transition, Expiration, NoncurrentVersionExpiration, and NoncurrentVersionTransition elements are absent.

DaysAfterInitiation

@@ -250,7 +264,64 @@ Content-MD5: MD5

Type: integer

Parent: AbortIncompleteMultipartUpload

Required if the AbortIncompleteMultipartUpload element is present.

+

Yes if the AbortIncompleteMultipartUpload element is present.

+

Filter

+

A specific filter. The lifecycle rule will apply to the objects matching this filter in a bucket.

+

You can filter objects by object key prefix, object tag, or both. If there are multiple filters in a rule, use the And logic to combine them.

+

Type: XML

+

Parent: Rule

+

Either Filter or Prefix can be configured at the same level under Rule.

+

Prefix can be a child node of Filter.

+

+

And

+

The And logic among filtering criteria.

+

The And logic can be used when both the object name prefix and object tag are used or multiple object tags are used.

+

Type: XML

+

Parent: Filter

+

Constraints:

+
  1. And must have child nodes.
  2. If Filter has Tag or Prefix as its child node, And cannot be a child node at the same level as the Tag or Prefix child node under Filter. (Tag and Prefix can be included in And.)
+

Yes if there are multiple Prefix and Tag rules.

+

Tag

+

Specifies which objects can match the current Rule.

+

Type: container

+

Parent: Filter or And

+

Constraints:

+
  1. If Tag is configured as a child node of Filter, there can be only one Tag node. If Filter has a Prefix child node, there cannot be any Tag node at the same level with Prefix under Filter.
  2. If Tag is configured under And, there can be a maximum of 10 Tag nodes, and the tag key values must be different.
  3. If AbortIncompleteMultipartUpload exists as a child node of Rule, Tag cannot be configured to filter fragments.
  4. If the tags in multiple rules overlap and lifecycle actions conflict, the configuration is not allowed. For example, rule 1 uses one tag (key1, value1) and deletes objects 90 days after creation, while rule 2 uses two tags (key1, value1; key2, value2) and transitions objects to COLD 120 days after creation. In this case, the tags in two rules overlap and lifecycle actions conflict, so such configuration is not allowed.
+

No

+

Key

+

The key of the tag.

+

Type: string

+

Parent: Tag

+

Constraints:

+

A tag key is case sensitive and must be unique. It cannot be left blank or exceed 128 characters. The following characters are not allowed: =*<>\,|/?!;

+

Yes if Tag is present.

+

Value

+

The value of the tag.

+

Type: string

+

Parent: Tag

+

Constraints:

+

A tag value is case sensitive and can be left blank. It cannot exceed 255 characters. The following characters are not allowed: =*<>\,|?!;

+

Yes if Tag is present.

Prefix

@@ -342,7 +413,10 @@ Content-Length: length 39 40 41 -42
PUT /?lifecycle HTTP/1.1
+42
+43
+44
+45
PUT /?lifecycle HTTP/1.1
 User-Agent: curl/7.29.0
 Host: examplebucket.obs.region.example.com
 Accept: */*
@@ -354,8 +428,14 @@ Content-Length: 919
 <?xml version="1.0" encoding="utf-8"?>
 <LifecycleConfiguration> 
   <Rule> 
-    <ID>delete-2-days</ID>  
-    <Prefix>test/</Prefix>  
+    <ID>lifecycle-rule-id</ID>  
+    <Filter>
+      <And>
+         <Prefix>prefix</Prefix> 
+         <Tag><Key>key1</Key><Value>value1</Value></Tag>
+         <Tag><Key>key2</Key><Value>value2</Value></Tag>
+      </And>
+    </Filter>  
     <Status>Enabled</Status>  
     <Expiration> 
       <Days>70</Days> 
@@ -379,9 +459,6 @@ Content-Length: 919
       <NoncurrentDays>60</NoncurrentDays>  
       <StorageClass>COLD</StorageClass> 
     </NoncurrentVersionTransition> 
-    <AbortIncompleteMultipartUpload>
-        <DaysAfterInitiation>10</DaysAfterInitiation>
-    </AbortIncompleteMultipartUpload>
   </Rule>
 </LifecycleConfiguration>
 
@@ -401,6 +478,32 @@ Content-Length: 0
+

Sample Request: Deleting Fragments

PUT /?lifecycle HTTP/1.1
+Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
+User-Agent: curl/7.29.0
+Host: examplebucket.obs.region.example.com
+Date: Thu, 24 Apr 2025 14:28:22 GMT
+Content-Type: application/xml
+Content-MD5: PBgGafte2ACjUwYxdJA47Q==
+ 
+<LifecycleConfiguration>
+    <Rule>
+        <ID>lifecycle-rule-id</ID>
+        <Prefix>test/</Prefix>
+        <Status>Enabled</Status>
+        <AbortIncompleteMultipartUpload>
+            <DaysAfterInitiation>10</DaysAfterInitiation>
+        </AbortIncompleteMultipartUpload>
+    </Rule>
+</LifecycleConfiguration>
+
+

Sample Response: Deleting Fragments

HTTP/1.1 200 OK
+x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCTlN+glNMVGtTicAnVXkTVDjR5xKSLuH
+x-obs-request-id: 0000018A2BE86742D2C6989CA79E136C
+Server: OBS
+Content-Length: 0
+Date: Thu, 24 Apr 2025 14:28:23 GMT
+
HTTP/1.1 status_code
+39
+40
+41
+42
+43
+44
+45
+46
HTTP/1.1 status_code
 Date: date
 Content-Type: application/xml 
 Date: date
@@ -68,6 +75,13 @@ Content-Length: length
 <LifecycleConfiguration xmlns="http://obs.region.example.com/doc/2015-06-30/">
     <Rule> 
         <ID>id</ID> 
+        <Filter>
+          <And>
+             <Prefix>prefix</Prefix> 
+             <Tag><Key>key1</Key><Value>value1</Value></Tag>
+             <Tag><Key>key2</Key><Value>value2</Value></Tag>
+          </And>
+        </Filter>
         <Prefix>prefix</Prefix> 
         <Status>status</Status> 
         <Expiration> 
@@ -201,6 +215,43 @@ Content-Length: length
 

Parent: AbortIncompleteMultipartUpload

+

Filter

+ +

A specific filter. The lifecycle rule will apply to the objects matching this filter in a bucket.

+

You can filter objects by object key prefix, object tag, or both. If there are multiple filters in a rule, use the And logic to combine them.

+

Type: XML

+

Parent: Rule

+ + +

And

+ +

The And logic among filtering criteria.

+

The And logic can be used when both the object name prefix and object tag are used.

+

Type: XML

+

Parent: Filter

+ + +

Tag

+ +

The Tag element.

+

Type: container

+

Parent: Filter or And

+ + +

Key

+ +

The key of the tag.

+

Type: string

+

Parent: Tag

+ + +

Value

+ +

The value of the tag.

+

Type: string

+

Parent: Tag

+ +

Prefix

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

@@ -314,6 +365,9 @@ Content-Length: 919 <LifecycleConfiguration> <Rule> <ID>delete-2-days</ID> + <Filter> + <Prefix>test/</Prefix> + </Filter> <Status>Enabled</Status> <Expiration> <Days>2</Days> @@ -337,9 +391,6 @@ Content-Length: 919 <NoncurrentDays>60</NoncurrentDays> <StorageClass>COLD</StorageClass> </NoncurrentVersionTransition> - <AbortIncompleteMultipartUpload> - <DaysAfterInitiation>10</DaysAfterInitiation> - </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>
diff --git a/docs/obs/api-ref/obs_04_0046.html b/docs/obs/api-ref/obs_04_0046.html index 1f84ca052..957dc58c7 100644 --- a/docs/obs/api-ref/obs_04_0046.html +++ b/docs/obs/api-ref/obs_04_0046.html @@ -66,7 +66,7 @@ Content-Length: contentlength

Content-MD5

-

Base64-encoded 128-bit MD5 digest of the message calculated based on RFC 1864. For details about how to calculate the value of Content-MD5, see Content-MD5 Algorithm in Java.

+

Base64-encoded 128-bit MD5 value of the request body calculated according to RFC 1864. For details about how to calculate Content-MD5, see Content-MD5 Algorithm in Java.

Yes

diff --git a/docs/obs/api-ref/obs_04_0049.html b/docs/obs/api-ref/obs_04_0049.html index 682c05638..974a3124a 100644 --- a/docs/obs/api-ref/obs_04_0049.html +++ b/docs/obs/api-ref/obs_04_0049.html @@ -49,9 +49,16 @@ Content-MD5: md5

Content-MD5

-

Base64-encoded 128-bit MD5 digest of the message according to RFC 1864.

+

Explanation:

+

Base64-encoded 128-bit MD5 digest of the message according to RFC 1864.

Type: string

Example: n58IG6hfM7vqI4K0vnWpog==

+

Restrictions:

+

None

+

Value range:

+

None

+

Default value:

+

None

Yes

@@ -72,7 +79,8 @@ Content-MD5: md5

Tagging

-

Root element for TagSet and Tag

+

Explanation:

+

Root element for TagSet and Tag

Type: container

Parent: none

@@ -81,7 +89,8 @@ Content-MD5: md5

TagSet

-

Element of the tag set

+

Explanation:

+

Element of the tag set

Type: container

Parent: Tagging

@@ -90,7 +99,8 @@ Content-MD5: md5

Tag

-

Information element of Tag

+

Explanation:

+

Information element of Tag

Type: container

Parent: TagSet

@@ -102,9 +112,9 @@ Content-MD5: md5

Explanation:

Name of a tag. Type: string. Parent: Tag.

Restrictions:

- +

Value range:

-

A string between 0 and 36 characters long.

+

A string between 1 and 36 characters long.

Default value:

None

@@ -116,9 +126,9 @@ Content-MD5: md5

Explanation:

Tag value. Type: string. Parent: Tag.

Restrictions:

- +

Value range:

-

A string of 0 to 42 characters.

+

A string of 0 (included) to 43 (excluded) characters.

Default value:

None

diff --git a/docs/obs/api-ref/obs_04_0059.html b/docs/obs/api-ref/obs_04_0059.html index 7980a8a2b..66179c4af 100644 --- a/docs/obs/api-ref/obs_04_0059.html +++ b/docs/obs/api-ref/obs_04_0059.html @@ -2,6 +2,7 @@

Configuring a Custom Domain Name for a Bucket

Functions

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.

+

To perform this operation, the user must be the bucket owner or the bucket owner's IAM user that has permissions required for configuring custom domain names.

Ensure that the custom domain name can correctly resolve to the OBS service through DNS.

Request Syntax

1
@@ -20,24 +21,29 @@ Content-Length: 0
 
+

Request Parameters

-
Table 1 Request parameters

Parameter

+
- - - - - @@ -68,7 +74,7 @@ Content-Length: 0

Error Responses

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

-

Sample Request

Table 1 Request parameters

Parameter

Description

+

Description

Mandatory

+

Mandatory

customdomain

+

customdomain

Custom domain name of a bucket.

-

Type: string, which must meet the naming conventions of domain names.

-

Specifications: The value contains a maximum of 256 characters.

-

No default value.

-

Constraints: A bucket can have a maximum of 30 domain names. A custom domain name can be used for only one bucket.

+

Explanation:

+

Custom domain name of a bucket.

+

Type: String, which must meet the naming conventions of domain names.

+

Restrictions:

+

A bucket can have a maximum of 30 domain names. One custom domain name can be used for only one bucket.

+

Value range:

+

The maximum length is 256 bytes.

+

Default value:

+

None

Yes

+

Yes

1
+

Sample Request

1
 2
 3
 4
@@ -83,6 +89,7 @@ Authorization: OBS UDSIAMSTUBTEST0
 Content-Length: 0
 
+

Sample Response

1
 2
diff --git a/docs/obs/api-ref/obs_04_0060.html b/docs/obs/api-ref/obs_04_0060.html
index 05135aed1..af08f97bb 100644
--- a/docs/obs/api-ref/obs_04_0060.html
+++ b/docs/obs/api-ref/obs_04_0060.html
@@ -2,6 +2,7 @@
 
 

Obtaining the Custom Domain Name of a Bucket

Functions

OBS uses the GET method to obtain the custom domain name of a bucket.

+

To perform this operation, the user must be the bucket owner or the bucket owner's IAM user that has permissions required for obtaining custom domain names.

Request Syntax

1
 2
diff --git a/docs/obs/api-ref/obs_04_0061.html b/docs/obs/api-ref/obs_04_0061.html
index 0234da7f7..b77c1e771 100644
--- a/docs/obs/api-ref/obs_04_0061.html
+++ b/docs/obs/api-ref/obs_04_0061.html
@@ -2,6 +2,7 @@
 
 

Deleting the Custom Domain Name of a Bucket

Functions

OBS uses the DELETE method to delete the custom domain name of a bucket.

+

To perform this operation, the user must be the bucket owner or the bucket owner's IAM user that has permissions required for deleting custom domain names.

Request Syntax

diff --git a/docs/obs/api-ref/obs_04_0110.html b/docs/obs/api-ref/obs_04_0110.html index 11f88efb8..6501f842c 100644 --- a/docs/obs/api-ref/obs_04_0110.html +++ b/docs/obs/api-ref/obs_04_0110.html @@ -3,7 +3,7 @@

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 and examples of IAM policies, see Console Operation Guide > Permissions Control > Permission Control Mechanisms > IAM Policies in the Object Storage Service User Guide. x.x.x indicates the version number.

+

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 and examples of IAM policies, see Console Operation Guide > Permissions Control > Permission Control Mechanisms > IAM Policies in the 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.
diff --git a/docs/obs/api-ref/obs_04_0112.html b/docs/obs/api-ref/obs_04_0112.html index c7070d371..a737c5a50 100644 --- a/docs/obs/api-ref/obs_04_0112.html +++ b/docs/obs/api-ref/obs_04_0112.html @@ -12,11 +12,10 @@ -
+ + + + + - @@ -151,7 +160,7 @@ - @@ -167,7 +176,7 @@ - @@ -176,7 +185,7 @@ - diff --git a/docs/obs/api-ref/obs_04_0115.html b/docs/obs/api-ref/obs_04_0115.html index 2e22bc25d..9d8f3765e 100644 --- a/docs/obs/api-ref/obs_04_0115.html +++ b/docs/obs/api-ref/obs_04_0115.html @@ -73,7 +73,7 @@ QUFBQUFBYmJiYmJiYmJD</HostId>

Description

If OBS encounters an error when processing a request, a response containing the error code and description is returned. Table 2 describes the error codes of OBS.

-
1
 2
diff --git a/docs/obs/api-ref/obs_04_0062.html b/docs/obs/api-ref/obs_04_0062.html
index 8120d92b0..c6cdc9d89 100644
--- a/docs/obs/api-ref/obs_04_0062.html
+++ b/docs/obs/api-ref/obs_04_0062.html
@@ -88,7 +88,7 @@ Content-Length: length
 

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

Type: string

Value options:

-
  • kms: SSE-KMS encryption and the AES256 algorithm are used. To use the SM4 algorithm, you need to configure KMSDataEncryption.
  • AES256: SSE-OBS encryption and the AES256 algorithm are used.
+
  • kms: SSE-KMS encryption and the AES256 algorithm are used.
  • AES256: SSE-OBS encryption and the AES256 algorithm are used.

Parent: ApplyServerSideEncryptionByDefault

Yes

diff --git a/docs/obs/api-ref/obs_04_0071.html b/docs/obs/api-ref/obs_04_0071.html index cd0379c90..a03b26d1a 100644 --- a/docs/obs/api-ref/obs_04_0071.html +++ b/docs/obs/api-ref/obs_04_0071.html @@ -6,7 +6,7 @@

You can perform this operation to create or update the website configuration of a bucket.

To perform this operation, you must have the PutBucketWebsite 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.

Avoid using periods (.) in the destination bucket name. Otherwise, failures in client authentication certificate may occur when users use HTTPS for access.

-

The maximum size of a network configuration request for a bucket is 10 KB.

+

The maximum size of a request body for configuring static website hosting for a bucket is 10 KB.

Request Syntax

@@ -203,12 +203,12 @@ Upload to OBS

Yes

@@ -218,13 +218,13 @@ Upload to OBS - @@ -238,9 +238,9 @@ Upload to OBS Access key ID (AK) of the requester.

Restrictions:

This parameter is mandatory if there is security policy parameter policy or signature in the request.

-

Value range:

+

Value range:

AK of a user.

-

Default value:

+

Default value:

None

@@ -254,9 +254,9 @@ Upload to OBS A security policy

Restrictions:

This parameter is mandatory if AccessKeyId or signature is provided in the form.

-

Value range:

-

For the policy format, see Authentication of Signature Carried in the Table Uploaded Through a Browser.

-

Default value:

+

Value range:

+

For the policy format, see Authenticating the Signature Carried in a Form Uploaded Through a Browser.

+

Default value:

None

@@ -270,9 +270,9 @@ Upload to OBS A signature string calculated based on StringToSign.

Restrictions:

This parameter is mandatory if AccessKeyId or policy is provided in the form.

-

Value range:

+

Value range:

None

-

Default value:

+

Default value:

None

@@ -282,15 +282,15 @@ Upload to OBS
- @@ -327,9 +327,9 @@ Upload to OBS In HTML: <input type="text" name="grant-read" value="id=domainId1" />

Restrictions:

Use commas (,) to separate multiple domains.

-

Value range:

+

Value range:

The value of domainId must be valid. For details about how to obtain the ID, see Obtaining a Domain ID and a User ID.

-

Default value:

+

Default value:

None

@@ -346,9 +346,9 @@ Upload to OBS In HTML: <input type="text" name="grant-read-acp" value="id=domainId1" />

Restrictions:

None

-

Value range:

+

Value range:

The value of domainId must be valid. For details about how to obtain the ID, see Obtaining a Domain ID and a User ID.

-

Default value:

+

Default value:

None

@@ -365,9 +365,9 @@ Upload to OBS In HTML: <input type="text" name="grant-write-acp" value="id=domainId1" />

Restrictions:

None

-

Value range:

+

Value range:

The value of domainId must be valid. For details about how to obtain the ID, see Obtaining a Domain ID and a User ID.

-

Default value:

+

Default value:

None

@@ -384,9 +384,9 @@ Upload to OBS In HTML: <input type="text" name="grant-full-control" value="id=domainId1" />

Restrictions:

None

-

Value range:

+

Value range:

The value of domainId must be valid. For details about how to obtain the ID, see Obtaining a Domain ID and a User ID.

-

Default value:

+

Default value:

None

@@ -415,13 +415,13 @@ Upload to OBS
- @@ -431,16 +431,16 @@ Upload to OBS - @@ -450,13 +450,13 @@ Upload to OBS - @@ -466,13 +466,13 @@ Upload to OBS - @@ -482,13 +482,13 @@ Upload to OBS - @@ -498,17 +498,17 @@ Upload to OBS - @@ -525,9 +525,9 @@ Upload to OBS In HTML: <input type="text" name=" x-obs-meta-test " value=" test metadata " />

Restrictions:

None

-

Value range:

+

Value range:

For details, see Object Metadata.

-

Default value:

+

Default value:

None

@@ -543,7 +543,7 @@ Upload to OBS In POLICY: ["starts-with", "$success_action_status", ""],

In HTML: <input type="text" name="success_action_status" value="200" />

Restrictions:

-
  • If this parameter is set to 200 or 204, the response body is left blank.
  • If this parameter is set to 201, the response message contains an XML document that describes the response.
  • If this parameter is not specified or is invalid, the status code is 204.
+
  • If this parameter is set to 200 or 204, the response body is left blank.
  • If this parameter is set to 201, the response message contains an XML document that describes the response.
  • If this parameter is not specified or is invalid, the status code is 204.

Value range:

  • 200
  • 201
  • 204

Default value:

@@ -562,7 +562,7 @@ Upload to OBS The value must start with a slash (/), http://, or https:// and cannot exceed 2K.

Value range:

None

-

Default value:

+

Default value:

None

@@ -574,12 +574,12 @@ Upload to OBS
@@ -591,9 +591,9 @@ Upload to OBS @@ -605,12 +605,12 @@ Upload to OBS @@ -622,12 +622,12 @@ Upload to OBS @@ -639,12 +639,12 @@ Upload to OBS @@ -657,12 +657,12 @@ Upload to OBS

Explanation:

When an object expires and is deleted (how many days after the last update).

You can configure this parameter when uploading an object. You can also modify it after the object is uploaded by using the metadata modification API.

-

Example: x-obs-expires:3

+

Example: x-obs-expires:3

Restrictions:

The value must be greater than the number of days that have passed since the object was created. For example, if the object was uploaded 10 days ago, you must specify a value greater than 10.

-

Value range:

+

Value range:

The value is an integer greater than 0.

-

Default value:

+

Default value:

None

@@ -678,9 +678,9 @@ Upload to OBS Restrictions:

Currently, only COMPLIANCE (compliance mode) is supported.

This parameter must be used with x-obs-object-lock-retain-until-date.

-

Value range:

+

Value range:

COMPLIANCE

-

Default value:

+

Default value:

None

@@ -692,13 +692,13 @@ Upload to OBS
@@ -725,7 +725,7 @@ ETag: etag - @@ -737,9 +737,9 @@ ETag: etag

Object version ID.

Restrictions:

  • If versioning is enabled for the bucket, the object version ID will be returned.
  • If versioning is suspended for the bucket, a string null is returned.
-

Value range:

+

Value range:

The value is automatically generated by the server.

-

Default value:

+

Default value:

None

@@ -751,9 +751,9 @@ ETag: etag

Returned if the request origin meets the CORS configured on the server.

Restrictions:

None

-

Value range:

+

Value range:

The value that complies with the CORS

-

Default value:

+

Default value:

None

@@ -765,9 +765,9 @@ ETag: etag

Returned if the request headers meet the CORS configured on the server.

Restrictions:

None

-

Value range:

+

Value range:

The value that complies with the CORS

-

Default value:

+

Default value:

None

@@ -779,9 +779,9 @@ ETag: etag

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

Restrictions:

None

-

Value range:

+

Value range:

An integer greater than or equal to 0, in seconds

-

Default value:

+

Default value:

3000

@@ -803,13 +803,13 @@ ETag: etag - @@ -819,12 +819,12 @@ ETag: etag @@ -834,9 +834,9 @@ ETag: etag @@ -846,12 +846,12 @@ ETag: etag @@ -861,12 +861,12 @@ ETag: etag @@ -985,7 +985,7 @@ Content-Disposition: form-data; na id=52f24s3593as5730ea4f722483579xxx --7db143f50da2 Content-Disposition: form-data; name="x-obs-server-side-encryption" - + kms --7db143f50da2 Content-Disposition: form-data; name="x-obs-website-redirect-location" diff --git a/docs/obs/api-ref/obs_04_0082.html b/docs/obs/api-ref/obs_04_0082.html index 02ab72827..18b589d99 100644 --- a/docs/obs/api-ref/obs_04_0082.html +++ b/docs/obs/api-ref/obs_04_0082.html @@ -3,7 +3,7 @@

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.

+

The object copy request carries the information about the source 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.

@@ -23,7 +23,7 @@

To add tags to an object copy, you must have the PutObjectTagging permission for the object copy. To add tags to an object copy version, you must have the PutObjectTagging and PutObjectVersionTagging permissions for the object copy version. These permissions can be granted using bucket ACLs or bucket policies.

-

Cold Objects

If source objects are in the Cold storage class, ensure that these objects have been restored before you copy them. If a source object is not restored or is being restored, its copy will fail and error 403 Forbidden will be returned. The fault is described as follows:

+

Cold Objects

If source objects are in the Cold storage class, ensure that these objects have been restored before you copy them. If a source object is not restored or is being restored, its copy will fail and error 403 Forbidden will be returned. The fault is described as follows:

ErrorCode: InvalidObjectState

ErrorMessage: Operation is not valid for the source object's storage class

@@ -154,7 +154,7 @@ Date: date
@@ -324,7 +324,7 @@ Date: date @@ -460,7 +460,7 @@ Date: date - - @@ -577,7 +577,7 @@ Content-Length: length @@ -604,7 +604,7 @@ Content-Length: length - @@ -169,7 +169,7 @@ Range:bytes=byte_range

None

Value range:

None

-

Default value:

+

Default value:

None

@@ -196,16 +196,16 @@ Range:bytes=byte_range @@ -216,7 +216,7 @@ Range:bytes=byte_range @@ -243,7 +243,7 @@ Range:bytes=byte_range
  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. if-unmodified-since: Sun, 06 Nov 1994 08:49:37 GMT
  2. if-unmodified-since: Sunday, 06-Nov-94 08:49:37 GMT
  3. if-unmodified-since: Sun Nov 6 08:49:37 1994
-

Default value:

+

Default value:

None

@@ -254,13 +254,13 @@ Range:bytes=byte_range @@ -271,13 +271,13 @@ Range:bytes=byte_range @@ -289,12 +289,12 @@ Range:bytes=byte_range @@ -306,12 +306,12 @@ Range:bytes=byte_range @@ -323,12 +323,12 @@ Range:bytes=byte_range @@ -371,14 +371,14 @@ Last-Modified: time - @@ -395,7 +395,7 @@ Last-Modified: time

OBS obtains the specified value from the header and stores it in the object metadata WebsiteRedirectLocation.

Restrictions:

  • The value must start with a slash (/), http://, or https:// and cannot exceed 2 KB.
  • OBS supports redirection for objects in the root directory of a bucket, not for those in folders.
-

Default value:

+

Default value:

None

@@ -403,7 +403,7 @@ Last-Modified: time - - @@ -429,14 +429,14 @@ Last-Modified: time - @@ -446,9 +446,9 @@ Last-Modified: time @@ -456,14 +456,14 @@ Last-Modified: time - @@ -471,12 +471,12 @@ Last-Modified: time - @@ -490,7 +490,7 @@ Last-Modified: time

This header is returned when the object is not a Normal object.

Value range:

Appendable

-

Default value:

+

Default value:

None

@@ -512,7 +512,7 @@ Last-Modified: time - - @@ -193,7 +193,7 @@ Last-Modified: time - - - @@ -319,7 +319,7 @@ Last-Modified: time - - - @@ -64,17 +71,28 @@ Date: date - - diff --git a/docs/obs/api-ref/obs_04_0087.html b/docs/obs/api-ref/obs_04_0087.html index d8572681e..ab07600cf 100644 --- a/docs/obs/api-ref/obs_04_0087.html +++ b/docs/obs/api-ref/obs_04_0087.html @@ -1,7 +1,7 @@ -

Restoring Cold Objects

-

Functions

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 the object is saved in the Standard storage class. By doing so, the object in the Cold storage class and its copy in the Standard storage class co-exist in the bucket. The copy will be automatically deleted once its retention period ends.

+

Restoring Cold Objects

+

Functions

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 the object is saved in the Standard storage class. By doing so, the object in the Cold storage class and its copy in the Standard storage class co-exist in the bucket. The copy will be automatically deleted once its retention period ends.

Versioning

By default, this operation returns the latest version of an object. If the object has a delete marker, status code 404 is returned. To restore an object of a specified version, the versionId parameter can be used to specify the desired version.

@@ -36,7 +36,7 @@ Content-MD5: MD5
- - - @@ -158,7 +158,7 @@ Date: date - @@ -167,8 +167,8 @@ Date: date - - - - @@ -366,7 +366,7 @@ Last-Modified: time @@ -123,10 +123,10 @@ Authorization: authorization

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

Example: x-obs-grant-write-acp: ID=domainID

Restrictions:

-

If multiple accounts are authorized, separate them with commas (,).

+

Use commas (,) to separate multiple domains.

Value range:

None

-

Default value:

+

Default value:

None

@@ -139,12 +139,12 @@ Authorization: authorization @@ -172,14 +172,14 @@ Authorization: authorization - @@ -224,7 +224,7 @@ Authorization: authorization - - @@ -397,10 +397,10 @@ Connection: status - @@ -441,7 +441,7 @@ Connection: status @@ -484,7 +484,7 @@ Connection: status - - - @@ -201,7 +201,7 @@ Content-Length: length
 1
diff --git a/docs/obs/api-ref/obs_04_0074.html b/docs/obs/api-ref/obs_04_0074.html
index bb96c1009..c1864c21f 100644
--- a/docs/obs/api-ref/obs_04_0074.html
+++ b/docs/obs/api-ref/obs_04_0074.html
@@ -2,9 +2,9 @@
 
 

Configuring Bucket CORS

Functions

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 page requests, the scripts and contents at one website cannot interact with those at another website due to the existence of the Same Origin Policy (SOP).

-

OBS allows buckets to store static web resources. The buckets of OBS can serve as website resources if the buckets are properly used (for details, see Configuring Static Website Hosting for a Bucket). A website in OBS can respond to requests of another websites only after CORS is properly configured.

+

OBS allows buckets to store static web resources. The buckets of OBS can serve as website resources if the buckets are properly used (for details, see Configuring Static Website Hosting for a Bucket). A website in OBS can respond to cross-origin requests from another website only after CORS is configured.

Typical application scenarios are as follows:

-
  • With the support of CORS, you can use JavaScript and HTML5 to construct web applications and directly access the resources in OBS without the need to use proxy servers for transfer.
  • You can enable the dragging function of HTML 5 to directly upload files to the OBS (with the upload progress displayed) or update the OBS contents using web applications.
  • Hosts external web pages, style sheets, and HTML 5 applications in different origins. Web fonts or pictures on OBS can be shared by multiple websites.
+
  • With CORS, you can use JavaScript and HTML5 to construct web applications that allow direct access to resources in OBS without the need to use proxy servers for transfer.
  • You can enable the dragging function of HTML 5 to directly upload files to the OBS (with the upload progress displayed) or update the OBS contents using web applications.
  • Hosts external web pages, style sheets, and HTML 5 applications in different origins. Web fonts or pictures on OBS can be shared by multiple websites.

To perform this operation, you must have the PutBucketCORS 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.

Request Syntax

@@ -185,11 +185,11 @@ Content-MD5: MD5 @@ -223,7 +223,7 @@ Content-MD5: MD5

Spaces, asterisks (*), ampersands (&), colons (:), less-than signs (<), and full-width characters are not allowed.

Value range:

The value that complies with the CORS

-

Default value:

+

Default value:

None

diff --git a/docs/obs/api-ref/obs_04_0079.html b/docs/obs/api-ref/obs_04_0079.html index 33eb44d40..205bc0af4 100644 --- a/docs/obs/api-ref/obs_04_0079.html +++ b/docs/obs/api-ref/obs_04_0079.html @@ -34,9 +34,9 @@ - - diff --git a/docs/obs/api-ref/obs_04_0080.html b/docs/obs/api-ref/obs_04_0080.html index 9409a89f0..8a64a7c62 100644 --- a/docs/obs/api-ref/obs_04_0080.html +++ b/docs/obs/api-ref/obs_04_0080.html @@ -100,7 +100,7 @@ Date: date

When creating an object, you can use this header to grant all users in a domain the permissions to read the object and obtain the object metadata.

Example: x-obs-grant-read: id=domainID

Restrictions:

-

If multiple domains are authorized, separate them with commas (,).

+

Use commas (,) to separate multiple domains.

Value range:

The value must be a valid ID. For details, see Obtaining a Domain ID and a User ID.

Default value:

@@ -117,7 +117,7 @@ Date: date

When creating an object, you can use this header to grant all users in a domain the permissions to obtain the object ACL.

Example: x-obs-grant-read-acp: id=domainID

Restrictions:

-

If multiple domains are authorized, separate them with commas (,).

+

Use commas (,) to separate multiple domains.

Value range:

The value must be a valid ID. For details, see Obtaining a Domain ID and a User ID.

Default value:

@@ -134,7 +134,7 @@ Date: date

When creating an object, you can use this header to grant all users in a domain the permission to write the object ACL.

Example: x-obs-grant-write-acp: id=domainID

Restrictions:

-

If multiple domains are authorized, separate them with commas (,).

+

Use commas (,) to separate multiple domains.

Value range:

The value must be a valid ID. For details, see Obtaining a Domain ID and a User ID.

Default value:

@@ -151,7 +151,7 @@ Date: date

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

Example: x-obs-grant-full-control: id=domainID

Restrictions:

-

If multiple domains are authorized, separate them with commas (,).

+

Use commas (,) to separate multiple domains.

Value range:

The value must be a valid ID. For details, see Obtaining a Domain ID and a User ID.

Default value:

@@ -182,10 +182,10 @@ Date: date - - - -
 1
@@ -66,7 +66,7 @@ Content-MD5: MD5
 

Explanation:

Base64-encoded 128-bit MD5 digest of the message according to RFC 1864

Example: n58IG6hfM7vqI4K0vnWpog==

-

Restrictions:

+

Restrictions:

None

Value range:

None

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

Explanation:

CORS rules

Parent: CORSConfiguration

-

Restrictions:

+

Restrictions:

CORSConfiguration can contain a maximum of 100 rules.

Value range:

None

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

Value range:

The following HTTP methods are supported:

  • GET
  • PUT
  • HEAD
  • POST
  • DELETE
-

Default value:

+

Default value:

None

Explanation:

What headers are allowed in a CORS request. If a CORS request contains the Access-Control-Request-Headers header, the headers listed in this header must match the headers in the AllowedHeader element so that the request can be considered valid. The matching is based on regular expressions.

Parent: CORSRule

-

Restrictions:

+

Restrictions:

At most one asterisk (*) is allowed. Spaces, ampersands (&), colons (:), less-than signs (<), and full-width characters are not allowed.

Value range:

The value must comply with the CORS protocol and contain 0 to 20480 characters.

-

Default value:

+

Default value:

None

No

Explanation:

-

When creating an object, you can use a header starting with x-obs-meta- to define object metadata in an HTTP request. The custom metadata will be returned in the response when you retrieve the object or query the object metadata.

-

Example: x-obs-meta-test: test metadata

-

Restrictions:

-

Both custom metadata keys and their values must conform to US-ASCII standards.

+

When creating an object, you can use a header starting with x-obs-meta- to define object metadata in an HTTP request. Such metadata will be returned in the response when you retrieve the object or query the object metadata.

+

Example: x-obs-meta-test: test metadata

+

Restrictions:

+

Both metadata keys and their values must conform to US-ASCII standards.

Value range:

None

Default value:

@@ -200,7 +200,7 @@ Date: date

Explanation:

If a bucket is configured with the static website hosting function, it will redirect requests for this object to another object in the same bucket or to an external URL. OBS stores the value of this header in the object metadata.

-

In the following example, the request header sets the redirection to an object (anotherPage.html) in the same bucket:

+

In the following example, the request header sets the redirection to an object (anotherPage.html) in the same bucket:

x-obs-website-redirect-location:/anotherPage.html

In the following example, the request header sets the object redirection to an external URL:

x-obs-website-redirect-location:http://www.example.com/

@@ -221,7 +221,7 @@ Date: date

Explanation:

Indicates that SSE-KMS is used.

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

-

Restrictions:

+

Restrictions:

None

Value range:

kms, or AES256

@@ -251,7 +251,7 @@ Date: date

Explanation:

The algorithm used for encryption.

-

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

+

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

Restrictions:

  • This header is used only when SSE-C is used.
  • This header must be used together with x-obs-server-side-encryption-customer-key and x-obs-server-side-encryption-customer-key-MD5.

Value range:

@@ -268,7 +268,7 @@ Date: date

Explanation:

The key used for encrypting an object.

-

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

+

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restrictions:

  • This header is used only when SSE-C is used.
  • This header is a Base64-encoded 256-bit key and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key-MD5.

Value range:

@@ -285,8 +285,8 @@ Date: date

Explanation:

The MD5 value of the key used for encryption. The MD5 value is used to check whether any error occurs during the transmission of the key.

-

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

-

Restrictions:

+

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

+

Restrictions:

  • This header is used only when SSE-C is used.
  • This header is a Base64-encoded 128-bit MD5 value and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key.

Value range:

MD5 value of the key.

@@ -302,8 +302,8 @@ Date: date

Explanation:

The redirection address used when requests were successfully responded to.

-
  • If the value is valid and the request is successful, OBS returns status code 303. Location contains success_action_redirect as well as the bucket name, object name, and object ETag.
  • If this parameter value is invalid, OBS ignores this parameter. In such case, the Location header is the object address, and OBS returns the response code based on whether the operation succeeds or fails.
-

Restrictions:

+
  • If the value is valid and the request is successful, OBS returns status code 303. Location contains success_action_redirect as well as the bucket name, object name, and object ETag.
  • If this parameter value is invalid, OBS ignores this parameter. In such case, the Location header is the object address, and OBS returns the response code based on whether the operation succeeds or fails.
+

Restrictions:

The value must be a valid URL, for example, http://domainname or https://domainname.

Value range:

URL

@@ -321,7 +321,7 @@ Date: date

Specifies when an object expires. It is measured in days. Once the object expires, it is automatically deleted. (The validity calculates from the object's creation time.)

You can configure this field when uploading an object or modify this field by using the metadata modification API after the object is uploaded.

Example: x-obs-expires:3

-

Restrictions:

+

Restrictions:

The value must be greater than the number of days that have passed since the object was created. For example, if the object was uploaded 10 days ago, you must specify a value greater than 10.

Value range:

The value is an integer greater than 0.

@@ -352,10 +352,10 @@ Date: date

No, but required when x-obs-object-lock-retain-until-date is present

Explanation:

+

Explanation:

WORM mode applied to the object.

Example: x-obs-object-lock-mode:COMPLIANCE

-

Restrictions:

+

Restrictions:

  • Only COMPLIANCE (compliance mode) is supported.
  • This parameter must be used together with x-obs-object-lock-retain-until-date.

Value range:

COMPLIANCE

@@ -367,12 +367,12 @@ Date: date

String

No, but required when x-obs-object-lock-mode is present.

+

No, but required when x-obs-object-lock-mode is present.

Explanation:

+

Explanation:

When the WORM policy of the object expires.

Example: x-obs-object-lock-retain-until-date:2015-07-01T04:11:15Z

-

Restrictions:

+

Restrictions:

  • The value must be a UTC time that complies with the ISO 8601 standard. Example: 2015-07-01T04:11:15Z
  • This parameter must be used together with x-obs-object-lock-mode.

Value range:

The time must be later than the current time.

@@ -411,7 +411,7 @@ Content-Type: type

Explanation:

Version ID of the object. If versioning is enabled for the bucket, the object version ID will be returned.

-

Restrictions:

+

Restrictions:

None

Value range:

None

@@ -423,10 +423,10 @@ Content-Type: type

String

Explanation:

+

Explanation:

The encryption method used by the server.

-

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

-

Restrictions:

+

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

+

Restrictions:

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

Value range:

  • kms
  • AES256
@@ -452,8 +452,8 @@ Content-Type: type

Explanation:

The algorithm used for encryption.

-

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

-

Restrictions:

+

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

+

Restrictions:

This header is included in a response if SSE-C is used for server-side encryption.

Value range:

AES256

@@ -467,8 +467,8 @@ Content-Type: type

Explanation:

The MD5 value of the key used for encryption.

-

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

-

Restrictions:

+

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

+

Restrictions:

This header is included in a response if SSE-C is used for server-side encryption.

Value range:

MD5 value of the key.

@@ -482,7 +482,7 @@ Content-Type: type

Explanation:

Storage class of an object

-

Restrictions:

+

Restrictions:

This header is returned when the storage class of an object is not Standard.

Value range:

  • WARM
  • COLD
@@ -585,13 +585,11 @@ Content-Length: 0 7 8 9 -10 -11
PUT /object01 HTTP/1.1
+10
PUT /object01 HTTP/1.1
 User-Agent: curl/7.29.0
 Host: examplebucket.obs.region.example.com
 Accept: */*
 Date: WED, 01 Jul 2015 04:17:12 GMT
-x-obs-storage-class: WARM
 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:uFVJhp/dJqj/CJIVLrSZ0gpw3ng=
 Content-Length: 10240
 Expect: 100-continue
@@ -757,12 +755,14 @@ Expect: 100-continue
 4
 5
 6
-7
HTTP/1.1 200 OK
+7
+8
HTTP/1.1 200 OK
 Server: OBS
 x-obs-request-id: BB7800000164846A2112F98BF970AA7E
 ETag: "d41d8cd98f00b204e9800998ecf8427e"
 x-obs-id-2: a39E0UgAIAABAAAQAAEAABAAAQAAEAABCTPOUJu5XlNyU32fvKjM/92MQZK2gtoB
 Date: WED, 01 Jul 2015 04:15:07 GMT
+x-obs-storage-class: WARM
 Content-Length: 0
 
diff --git a/docs/obs/api-ref/obs_04_0081.html b/docs/obs/api-ref/obs_04_0081.html index c57cc0126..cbcc93d22 100644 --- a/docs/obs/api-ref/obs_04_0081.html +++ b/docs/obs/api-ref/obs_04_0081.html @@ -9,7 +9,7 @@

A single upload allows at most 5 GB of objects. To upload more than 5 GB of objects, see Operations on Multipart Upload.

This API supports server-side encryption.

-

Differences Between PUT and POST Methods

PUT requests include parameters in the header; POST requests in the form.

+

Differences Between PUT and POST Methods

PUT requests include parameters in the header, while POST requests include them in the form.

In the URL, PUT requests require object names be specified; POST requests only require bucket domain names. Request lines of PUT and POST are as follows:

PUT /ObjectName HTTP/1.1
POST / HTTP/1.1
@@ -174,9 +174,9 @@ Upload to OBS HTTP headers in a request. Multiple headers can be included.

Restrictions:

None

-

Value range:

+

Value range:

An HTTP-compliant header value

-

Default value:

+

Default value:

None

Explanation:

-

Object content to upload. Both the file name and path are ignored and will not be used as the object name. The object name is the value of parameter key.

+

Object content to upload. Both the file name and path are ignored and will not be used as the object name. The object name is the value of parameter key.

Restrictions:

  • This parameter must be the last to specify. Otherwise, the parameters that follow it will be discarded.
  • A request can contain only one file parameter.
-

Value range:

+

Value range:

None

-

Default value:

+

Default value:

None

Yes

Explanation:

+

Explanation:

Name of the object to be created. An object is uniquely identified by an object name in a bucket. An object name is a complete path that does not contain the bucket name.

Restrictions:

None

-

Value range:

+

Value range:

1 to 1,024 characters

-

Default value:

+

Default value:

None

No

Explanation:

+

Explanation:

Specifies the access key, signature, and security policy of the requester all together.

Restrictions:

The priority of a token is higher than that of a separately specified AK, signature, or security policy.

Example:

In HTML: <input type= "text" name="token" value="ak:signature:policy" />

-

Value range:

+

Value range:

The value must be in the ak:signature:policy format.

-

Default value:

+

Default value:

None

No

Explanation:

+

Explanation:

Standard HTTP header, returned in the response if a user downloads the object or makes a Head Object request.

Restrictions:

None

-

Value range:

+

Value range:

See the HTTP requirements for the Cache-Control header.

-

Default value:

+

Default value:

None

No

Explanation:

+

Explanation:

Standard HTTP header, returned in the response if a user downloads the object or makes a Head Object request.

Example:

In POLICY: ["starts-with", "$Content-Type", "text/"],

In HTML: <input type="text" name="content-type" value="text/plain" />

Restrictions:

None

-

Value range:

+

Value range:

See the HTTP requirements for the Content-Type header.

-

Default value:

+

Default value:

None

No

Explanation:

+

Explanation:

Standard HTTP header, returned in the response if a user downloads the object or makes a Head Object request.

Restrictions:

None

-

Value range:

+

Value range:

See the HTTP requirements for the Content-Disposition header.

-

Default value:

+

Default value:

None

No

Explanation:

+

Explanation:

Standard HTTP header, returned in the response if a user downloads the object or makes a Head Object request.

Restrictions:

None

-

Value range:

+

Value range:

See the HTTP requirements for the Content-Encoding header.

-

Default value:

+

Default value:

None

No

Explanation:

+

Explanation:

Standard HTTP header, returned in the response if a user downloads the object or makes a Head Object request.

Restrictions:

None

-

Value range:

+

Value range:

See the HTTP requirements for the Expires header.

-

Default value:

+

Default value:

None

No

Explanation:

+

Explanation:

Where a successful request is redirected

-
  • If the value is valid and the request is successful, OBS returns status code 303. Location contains success_action_redirect as well as the bucket name, object name, and object ETag.
  • If the value is invalid, OBS ignores this parameter. Location contains the object address, and OBS returns the response code based on the actual result.
+
  • If the value is valid and the request is successful, OBS returns status code 303. Location contains success_action_redirect as well as the bucket name, object name, and object ETag.
  • If the value is invalid, OBS ignores this parameter. Location contains the object address, and OBS returns the response code based on the actual result.

Examples:

In POLICY: {"success_action_redirect": "http://123458.com"},

In HTML: <input type="text" name="success_action_redirect" value="http://123458.com" />

Restrictions:

The value must start with http or https.

-

Value range:

+

Value range:

URL

-

Default value:

+

Default value:

None

Explanation:

Indicates that SSE-KMS is used for server-side encryption.

-

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

+

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

Restrictions:

None

-

Value range:

+

Value range:

  • kms
  • AES256
-

Default value:

+

Default value:

None

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

+

Restrictions:

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

-

Default value:

+

Default value:

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

Explanation:

The algorithm used for encryption.

-

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

+

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

Restrictions:

  • This header is used only when SSE-C is used.
  • This header must be used with x-obs-server-side-encryption-customer-key and x-obs-server-side-encryption-customer-key-MD5.
-

Value range:

+

Value range:

AES256

-

Default value:

+

Default value:

None

Explanation:

The key used for encrypting an object.

-

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

+

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restrictions:

  • This header is used only when SSE-C is used.
  • This header is a Base64-encoded 256-bit key. It must be used with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key-MD5.
-

Value range:

+

Value range:

None

-

Default value:

+

Default value:

None

Explanation:

The MD5 value of the key used for encryption. Used to check whether any error occurs during the key transmission.

-

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

+

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

Restrictions:

  • This header is used only when SSE-C is used.
  • This header is a Base64-encoded 128-bit MD5 value. It must be used with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key.
-

Value range:

+

Value range:

MD5 value of the key.

-

Default value:

+

Default value:

None

Explanation:

When the WORM policy of the object expires.

-

Example: x-obs-object-lock-retain-until-date:2015-07-01T04:11:15Z

+

Example: x-obs-object-lock-retain-until-date:2015-07-01T04:11:15Z

Restrictions:

The value must be a UTC time that complies with the ISO 8601 standard. Example: 2015-07-01T04:11:15Z

This parameter must be used with x-obs-object-lock-mode.

-

Value range:

+

Value range:

The time must be later than the current time.

-

Default value:

+

Default value:

None

Type

Description

+

Description

String

Explanation:

+

Explanation:

ExposeHeader in the CORS rules of the bucket. It specifies additional headers allowed in the response by a CORS rule. These headers provide extra information to clients. By default, a browser can access only headers Content-Length and Content-Type. If the browser needs to access other headers, you need to configure them as additional headers.

Restrictions:

Spaces, asterisks (*), ampersands (&), colons (:), less-than signs (<), and full-width characters are not allowed.

-

Value range:

+

Value range:

None

-

Default value:

+

Default value:

None

Explanation:

The encryption method used by the server.

-

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

+

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

Restrictions:

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

-

Value range:

+

Value range:

  • kms
  • AES256
-

Default value:

+

Default value:

None

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

+

Restrictions:

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

-

Default value:

+

Default value:

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

Explanation:

The algorithm used for encryption.

-

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

+

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

Restrictions:

Only for SSE-C server-side encryption.

-

Value range:

+

Value range:

AES256

-

Default value:

+

Default value:

None

Explanation:

The MD5 value of the key used for encryption.

-

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

+

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

Restrictions:

Only for SSE-C server-side encryption.

-

Value range:

+

Value range:

MD5 value of the key.

-

Default value:

+

Default value:

None

Explanation:

Indicates names of the source bucket and the source object. If the source object has multiple versions, the versionId parameter can be used to specify the desired version.

-

Example: x-obs-copy-source: /source_bucket/sourceObject

+

Example: x-obs-copy-source: /source_bucket/sourceObject

Restrictions:

Full-width characters and percent signs (%) must be URL-encoded.

Value range:

@@ -171,7 +171,7 @@ Date: date

Explanation:

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

-

Example: x-obs-metadata-directive: metadata_directive

+

Example: x-obs-metadata-directive: metadata_directive

Restrictions:

Values other than COPY or REPLACE result in an immediate 400-based error response. If you need to modify the metadata (the same for both the source and target objects), this parameter must be set to REPLACE. Otherwise, the request is invalid and the server returns a 400 HTTP status code error. This parameter cannot change an encrypted object to a non-encrypted one (for both the source and target objects). If you use this parameter to change the encryption of an object, OBS returns a 400 error.

Value range:

@@ -188,7 +188,7 @@ Date: date

Explanation:

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.

-

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

+

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

Restrictions:

This parameter can be used with x-obs-copy-source-if-unmodified-since but cannot with other conditional copy headers.

Value range:

@@ -205,7 +205,7 @@ Date: date

Explanation:

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.

-

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

+

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

Restrictions:

This parameter can be used with x-obs-copy-source-if-modified-since but cannot with other conditional copy headers.

Value range:

@@ -223,9 +223,9 @@ Date: date

Explanation:

The source object is copied only if the source object has not been modified since the time specified by this parameter. Otherwise, a 412 status code (precondition failed) is returned.

Restrictions:

-
  • The time specified by this parameter cannot be later than the current server time (GMT time), or this parameter does not take effect.
  • This parameter can be used with x-obs-copy-source-if-match but cannot with other conditional copy parameters.
  • 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
    +
    • The time specified by this parameter cannot be later than the current server time (GMT time), or this parameter does not take effect.
    • This parameter can be used with x-obs-copy-source-if-match but cannot with other conditional copy parameters.
    • 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
      +
      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

    Value range:

    None

    @@ -242,7 +242,7 @@ Date: date

Explanation:

The source object is copied only if the source object has been modified since the time specified by this parameter. Otherwise, a 412 status code (precondition failed) is returned.

Restrictions:

-
  • The time specified by this parameter cannot be later than the current server time (GMT time), or this parameter does not take effect.
  • This parameter can be used with x-obs-copy-source-if-none-match but cannot with other conditional copy parameters.
  • 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
    +
    • The time specified by this parameter cannot be later than the current server time (GMT time), or this parameter does not take effect.
    • This parameter can be used with x-obs-copy-source-if-none-match but cannot with other conditional copy parameters.
    • 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-modified-since: Sun, 06 Nov 1994 08:49:37 GMT
      2. x-obs-copy-source-if-modified-since: Sunday, 06-Nov-94 08:49:37 GMT
      3. x-obs-copy-source-if-modified-since: Sun Nov 6 08:49:37 1994
    @@ -310,9 +310,9 @@ Date: date

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

+

Restrictions:

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

-

Default value:

+

Default value:

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

Explanation:

The algorithm used to encrypt a target object.

-

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

+

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

Restrictions:

  • This header is used only when SSE-C is used.
  • This header must be used together with x-obs-server-side-encryption-customer-key and x-obs-server-side-encryption-customer-key-MD5.

Value range:

@@ -341,7 +341,7 @@ Date: date

Explanation:

The key used to encrypt a target object.

-

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

+

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restrictions:

  • This header is used only when SSE-C is used.
  • This header is a Base64-encoded 256-bit key and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key-MD5.

Value range:

@@ -358,7 +358,7 @@ Date: date

Explanation:

The MD5 value of the key used to encrypt a target object. The MD5 value is used to check whether any error occurs during the transmission of the key.

-

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

+

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

Restrictions:

  • This header is used only when SSE-C is used.
  • This header is a Base64-encoded 128-bit MD5 value and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key.

Value range:

@@ -392,7 +392,7 @@ Date: date

Explanation:

Indicates the key used to decrypt a source object.

-

Example: x-obs-copy-source-server-side-encryption-customer-key: K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

+

Example: x-obs-copy-source-server-side-encryption-customer-key: K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restrictions:

  • This header is used only when SSE-C is used.
  • This header is a Base64-encoded 256-bit key and must be used together with x-obs-copy-source-server-side-encryption-customer-algorithm and x-obs-copy-source-server-side-encryption-customer-key-MD5.

Value range:

@@ -409,7 +409,7 @@ Date: date

Explanation:

Indicates the MD5 value of the key used to decrypt a source object. The MD5 value is used to check whether any error occurs during the transmission of the key.

-

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

+

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

Restrictions:

  • This header is used only when SSE-C is used.
  • This header is a Base64-encoded 128-bit MD5 value and must be used together with x-obs-copy-source-server-side-encryption-customer-algorithm and x-obs-copy-source-server-side-encryption-customer-key.

Value range:

@@ -426,7 +426,7 @@ Date: date

Explanation:

The redirection address used when requests were successfully responded to.

-
  • If the value is valid and the request is successful, OBS returns status code 303. Location contains success_action_redirect as well as the bucket name, object name, and object ETag.
  • If this parameter value is invalid, OBS ignores this parameter. In such case, the Location header is the object address, and OBS returns the response code based on whether the operation succeeds or fails.
+
  • If the value is valid and the request is successful, OBS returns status code 303. Location contains success_action_redirect as well as the bucket name, object name, and object ETag.
  • If this parameter value is invalid, OBS ignores this parameter. In such case, the Location header is the object address, and OBS returns the response code based on whether the operation succeeds or fails.

Restrictions:

The value must be a valid URL, for example, http://domainname or https://domainname.

Value range:

@@ -447,7 +447,7 @@ Date: date

Restrictions:

None

Value range:

-
  • COPY: Tags of source objects are copied to the target objects.
  • REPLACE: The tags specified in the request are added to the target objects.
+
  • COPY: Tags of source objects are copied to the target objects.
  • REPLACE: The tags specified in the request are added to the target objects.

Default value:

REPLACE

Explanation:

WORM mode applied to the object.

-

Example: x-obs-object-lock-mode:COMPLIANCE

+

Example: x-obs-object-lock-mode:COMPLIANCE

Restrictions:

This parameter must be used together with x-obs-object-lock-retain-until-date.

Value range:

@@ -473,7 +473,7 @@ Date: date

String

No, but required when x-obs-object-lock-mode is present.

+

No, but required when x-obs-object-lock-mode is present.

Explanation:

When the WORM policy of the object expires.

@@ -492,14 +492,14 @@ Date: date

No

Explanation:

+

Explanation:

Object's tag information in key-value pairs. Multiple tags can be added at the same time.

-

Example: x-obs-tagging:TagA=A&TagB&TagC

+

Example: x-obs-tagging:TagA=A&TagB&TagC

Restrictions:

  • If a tag key or value contains special characters, equal signs (=), or full-width characters, it must be URL-encoded.
  • If there is no equal sign (=) in a configuration, the tag value is considered left blank.
-

Value range:

+

Value range:

None

-

Default value:

+

Default value:

None

Explanation:

The encryption method used by the server.

-

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

+

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

Restrictions:

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

Value range:

@@ -592,9 +592,9 @@ Content-Length: length

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

+

Restrictions:

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

-

Default value:

+

Default value:

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

Explanation:

The algorithm used for encryption.

-

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

+

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

Restrictions:

This header is included in a response if SSE-C is used for server-side encryption.

Value range:

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

Explanation:

The MD5 value of the key used for encryption.

-

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

+

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

Restrictions:

This header is included in a response if SSE-C is used for server-side encryption.

Value range:

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

String

Explanation:

+

Explanation:

Time (UTC) when an object was last modified

Restrictions:

The date is in the ISO8601 format.

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

String

Explanation:

-

128-bit MD5 digest of the Base64 code of a new 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.

+

128-bit MD5 digest of the Base64 code of a new 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.

Restrictions:

If an object is encrypted using server-side encryption, the ETag is not the MD5 value of the object.

Value range:

diff --git a/docs/obs/api-ref/obs_04_0083.html b/docs/obs/api-ref/obs_04_0083.html index db2b2115a..8f12beb6a 100644 --- a/docs/obs/api-ref/obs_04_0083.html +++ b/docs/obs/api-ref/obs_04_0083.html @@ -7,7 +7,7 @@

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 have not been restored or are being restored, a 403 Forbidden error will be returned.

+

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 have not been restored or are being restored, a 403 Forbidden error will be returned.

Request Syntax

1
 2
@@ -22,7 +22,7 @@ Range:bytes=byte_range 
 <Optional Additional Header>
 
-

The field is optional. If it does not exist, you can obtain the whole content.

+

The Range field is optional. If it is not specified, the entire object is downloaded.

Request Parameters

In a GET request, you can override values for a set of message headers using the request parameters. Message headers that you can override are Content-Type, Content-Language, Expires, Cache-Control, Content-Disposition, and Content-Encoding. If the target object has multiple versions, use the versionId parameter to specify the version to be downloaded. For details, see Table 1.

@@ -134,7 +134,7 @@ Range:bytes=byte_range

None

Value range:

See the Content-Encoding values defined in HTTP.

-

Default value:

+

Default value:

None

No

Explanation:

-

Obtains the object content within the scope defined by Range. If the parameter value is invalid, the entire object is obtained.

+

Obtains the object content within the scope defined by Range. If the parameter value is invalid, the entire object is obtained.

Restrictions:

-
  • Range value starts from 0, and the maximum value equals the object length minus 1. The start value of Range is mandatory. If only the start value is specified, the system obtains the object content from the start value to default maximum value.

    bytes=byte_range

    -

    Example 1: bytes=0-4

    -

    Example 2: bytes=1024

    -

    Example 3: bytes=10-20, 30-40 (multiple ranges)

    -
  • After the Range header field is carried, the value of ETag in the response message is the ETag of the object instead of the ETag of the object in the Range field.
+
  • Range value starts from 0, and the maximum value equals the object length minus 1. The start value of Range is mandatory. If only the start value is specified, the system obtains the object content from the start value to default maximum value.

    bytes=byte_range

    +

    Example 1: bytes=0-4

    +

    Example 2: bytes=1024

    +

    Example 3: bytes=10-20, 30-40 (multiple ranges)

    +
  • After the Range header field is carried, the value of ETag in the response message is the ETag of the object instead of the ETag of the object in the Range field.

Value range:

-

Range value starts from 0, and the maximum value equals the object length minus 1.

-

Default value:

+

Range value starts from 0, and the maximum value equals the object length minus 1.

+

Default value:

None

No

Explanation:

-

Returns the object only if it has been modified since the time specified by this header. Otherwise, 304 Not Modified is returned.

+

Returns the object only if it has been modified since the time specified by this header. Otherwise, 304 Not Modified is returned.

Restrictions:

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

Value range:

@@ -224,7 +224,7 @@ Range:bytes=byte_range
  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. if-modified-since: Sun, 06 Nov 1994 08:49:37 GMT
  2. if-modified-since: Sunday, 06-Nov-94 08:49:37 GMT
  3. if-modified-since: Sun Nov 6 08:49:37 1994
-

Default value:

+

Default value:

None

No

Explanation:

-

Returns the object only if its ETag is the same as the one specified by this header. Otherwise, 412 Precondition Failed is returned.

+

Returns the object only if its ETag is the same as the one specified by this header. Otherwise, 412 Precondition Failed is returned.

ETag example: 0f64741bf7cb1089e988e4585d0d3434

Restrictions:

None

Value range:

Object ETag

-

Default value:

+

Default value:

None

No

Explanation:

-

Returns the object only if its ETag is different from the one specified by this header. Otherwise, 304 Not Modified is returned.

+

Returns the object only if its ETag is different from the one specified by this header. Otherwise, 304 Not Modified is returned.

ETag example: 0f64741bf7cb1089e988e4585d0d3434

Restrictions:

None

Value range:

Object ETag

-

Default value:

+

Default value:

None

Explanation:

Indicates the encryption algorithm used when SSE-C is used.

-

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

+

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

Restrictions:

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

Value range:

AES256

-

Default value:

+

Default value:

None

Explanation:

Indicates the encryption key used when SSE-C is used. This key is used to decrypt objects.

-

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

+

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restrictions:

This header is a Base64-encoded 256-bit key and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key-MD5.

Value range:

None

-

Default value:

+

Default value:

None

Explanation:

Indicates the MD5 value of the encryption key when SSE-C is used. The MD5 value is used to check whether any error occurs during the transmission of the key.

-

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

+

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

Restrictions:

This header is a Base64-encoded 128-bit MD5 value and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key.

Value range:

Base64-encoded MD5 value of the key ID.

-

Default value:

+

Default value:

None

String

Explanation:

+

Explanation:

Expiration time of an object.

Restrictions:

-

When an object has its lifecycle rule, the object expiration time is subject to its lifecycle rule. This header field is use expiry-date to describe the object expiration date. If the lifecycle rule is configured only for the entire bucket not individual objects, the object expiration time is subject to the bucket lifecycle rule. This header field uses the expiry-date and rule-id to describe the detailed expiration information of objects. If no lifecycle rule is configured, this header field is not contained in the response.

+

When an object has its lifecycle rule, the object expiration time is subject to its lifecycle rule. This header field is use expiry-date to describe the object expiration date. If the lifecycle rule is configured only for the entire bucket not individual objects, the object expiration time is subject to the bucket lifecycle rule. This header field uses the expiry-date and rule-id to describe the detailed expiration information of objects. If no lifecycle rule is configured, this header field is not contained in the response.

Value range:

The time format is EEE, dd MMM yyyy HH:mm:ss z.

Example: expiry-date=Sun, 06 Nov 1994 08:49:37 GMT

-

Default value:

+

Default value:

None

Boolean

Explanation:

+

Explanation:

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

Value range:

  • true: The deleted object is a delete marker.
  • false: The deleted object is not a delete marker.
@@ -415,13 +415,13 @@ Last-Modified: time

String

Explanation:

+

Explanation:

Object version ID.

Restrictions:

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

Value range:

The value must contain 32 characters.

-

Default value:

+

Default value:

None

String

Explanation:

+

Explanation:

The encryption method used by the server.

-

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

+

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

Restrictions:

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

Value range:

  • kms
  • AES256
-

Default value:

+

Default value:

None

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

+

Restrictions:

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

-

Default value:

+

Default value:

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

String

Explanation:

+

Explanation:

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

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

Restrictions:

None

Value range:

AES256

-

Default value:

+

Default value:

None

String

Explanation:

+

Explanation:

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

-

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

+

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

Value range:

Base64-encoded MD5 value of the key ID.

-

Default value:

+

Default value:

None

String

Explanation:

+

Explanation:

Number of tags associated with an object.

Example: x-obs-tagging-count:1

Restrictions:

diff --git a/docs/obs/api-ref/obs_04_0084.html b/docs/obs/api-ref/obs_04_0084.html index 0a9dfdf3f..3a2e140b1 100644 --- a/docs/obs/api-ref/obs_04_0084.html +++ b/docs/obs/api-ref/obs_04_0084.html @@ -101,7 +101,7 @@ Authorization: authorization

Explanation:

Indicates the decryption algorithm used when SSE-C is used.

-

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

+

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

Restrictions:

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

Value range:

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

Explanation:

Indicates the decryption key used when SSE-C is used.

-

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

+

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restrictions:

This header is a Base64-encoded 256-bit key and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key-MD5.

Value range:

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

Explanation:

Indicates the MD5 value of the decryption key when SSE-C is used. The MD5 value is used to check whether any error occurs during the transmission of the key.

-

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

+

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

Restrictions:

This header is a Base64-encoded 128-bit MD5 value and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key.

Value range:

@@ -179,12 +179,12 @@ Last-Modified: time

String

Explanation:

+

Explanation:

Expiration details

Restrictions:

None

Value range:

-

When an object has its lifecycle rule, the object expiration time is subject to its lifecycle rule. This header field is use expiry-date to describe the object expiration date. If the lifecycle rule is configured only for the entire bucket not individual objects, the object expiration time is subject to the bucket lifecycle rule. This header field uses the expiry-date and rule-id to describe the detailed expiration information of objects. If no lifecycle rule is configured, this header field is not contained in the response.

+

When an object has its lifecycle rule, the object expiration time is subject to its lifecycle rule. This header field is use expiry-date to describe the object expiration date. If the lifecycle rule is configured only for the entire bucket not individual objects, the object expiration time is subject to the bucket lifecycle rule. This header field uses the expiry-date and rule-id to describe the detailed expiration information of objects. If no lifecycle rule is configured, this header field is not contained in the response.

Default value:

None

String

Explanation:

+

Explanation:

Indicates where an object request is redirected. If the bucket that contains the object is configured with Website settings, this parameter can be set in the object metadata so that the request for the object can be redirected to another object in the same bucket or an external URL after the website returns a 301 redirect response.

To another object in the same bucket:

x-obs-website-redirect-location:/anotherPage.html

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

Integer

Explanation:

+

Explanation:

MaxAgeSeconds in the CORS rules of the bucket. It specifies the time your client can cache the response for a cross-origin request.

Restrictions:

Each CORS rule can contain at most one MaxAgeSeconds.

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

String

Explanation:

+

Explanation:

ExposeHeader in the CORS rules of the bucket. It specifies additional headers allowed in the response by a CORS rule, which are used to provide extra information to clients. By default, a browser can access only headers Content-Length and Content-Type. If the browser needs to access other headers, you need to configure them as additional headers.

Restrictions:

Spaces, asterisks (*), ampersands (&), colons (:), less-than signs (<), and full-width characters are not allowed.

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

Explanation:

The encryption method used by the server.

-

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

+

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

Restrictions:

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

Value range:

@@ -307,9 +307,9 @@ Last-Modified: time

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

+

Restrictions:

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

-

Default value:

+

Default value:

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

Explanation:

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

-

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

+

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

Restrictions:

None

Value range:

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

Explanation:

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

-

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

+

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

Restrictions:

Base64-encoded MD5 value of the key, for example, 4XvB3tbNTN+tIEVa0/fGaQ==.

Value range:

@@ -361,11 +361,11 @@ Last-Modified: time

String

Explanation:

+

Explanation:

Restore status of an object.

For example, ongoing-request="true" indicates that the object is being restored. ongoing-request="false", expiry-date="Wed, 7 Nov 2012 00:00:00 GMT" indicates that the object has been restored, where expiry-date indicates when the restored object expires.

Restrictions:

-

This header is returned only when a Cold object is being restored or has been restored.

+

This header is returned only when Cold objects are being restored or has been restored.

Value range:

None

Default value:

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

Integer

Explanation:

+

Explanation:

Indicates the position that should be provided in the next request.

Restrictions:

This header is returned only when the object is an Appendable object.

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

Explanation:

Number of tags associated with an object.

-

Example: x-obs-tagging-count:1

+

Example: x-obs-tagging-count:1

Restrictions:

This header is returned only when you have the permission to read tags.

Value range:

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

Explanation:

WORM mode applied to the object.

-

Example: x-obs-object-lock-mode:COMPLIANCE

+

Example: x-obs-object-lock-mode:COMPLIANCE

Restrictions:

  • This parameter is returned only when the object has any object-level WORM retention policy configured or has a default bucket-level WORM policy applied.
  • The user must have the GetObjectRetention permission.

Value range:

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

Explanation:

When an object lock expires.

-

Example: x-obs-object-lock-retain-until-date:2015-07-01T04:11:15Z

+

Example: x-obs-object-lock-retain-until-date:2015-07-01T04:11:15Z

Restrictions:

  • The value must be a UTC time that complies with the ISO 8601 standard. Example: 2015-07-01T04:11:15Z
  • This parameter is returned only when the object has any object-level WORM retention policy configured or has a default bucket-level WORM policy applied.
  • The user must have the GetObjectRetention permission.

Value range:

diff --git a/docs/obs/api-ref/obs_04_0085.html b/docs/obs/api-ref/obs_04_0085.html index ad5c3b393..ec24e3b51 100644 --- a/docs/obs/api-ref/obs_04_0085.html +++ b/docs/obs/api-ref/obs_04_0085.html @@ -33,8 +33,15 @@ Authorization: authorization

versionId

Object version ID

+

Explanation:

+

Version ID of the object to be deleted.

Type: string

+

Restrictions:

+

None

+

Value range:

+

The value must contain 32 characters.

+

Default value:

+

None

No

x-obs-delete-marker

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

+

Explanation:

+

Whether an object has 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.

+

Restrictions:

+

None

+

Value range:

+
  • true
  • false
+

Default value:

+

false

x-obs-version-id

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

-

Valid value: string

-

Default value: none

+

Explanation:

+

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

+

Type: string

+

Restrictions:

+

None

+

Value range:

+

The value must contain 32 characters.

+

Default value:

+

None

No

Explanation:

-

Version ID of the Cold object to be restored

+

Version ID of the Cold object to be restored

Restrictions:

None

Value range:

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

Yes

Explanation:

+

Explanation:

After an object is restored, a Standard copy of it is generated. This parameter specifies how long the Standard copy can be retained, that is, the validity period of the restored object.

Restrictions:

None

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

No

Explanation:

+

Explanation:

Retrieval speed tier. You can select a tier that suits your retrieval needs.

Value range:

  • Expedited indicates that objects can be quickly restored from Archive storage within 1 to 5 minutes.
  • Standard indicates that objects can be restored from Archive storage within 3 to 5 hours.
@@ -149,7 +149,7 @@ Date: date

RestoreAlreadyInProgress

Explanation:

+

Explanation:

The object is being restored. The request conflicts with another.

ErrorMessage: Object restore is already in progress

ObjectHasAlreadyRestored

Explanation:

+

Explanation:

The objects have been restored and the retention period of the objects cannot be shortened.

ErrorMessage: After restoring an archived object, you cannot shorten the restoration period of the archived object

MalformedXML

Explanation:

-

Invalid value for the Days field (supposed to be an integer)

+

Explanation:

+

Invalid value for the Days field (supposed to be an integer)

ErrorMessage: The XML you provided was not well-formed or did not validate against our published schema

400 Bad Request

@@ -176,8 +176,8 @@ Date: date

InvalidArgument

Explanation:

-

Invalid value for the Days field (valid range: 1 to 30).

+

Explanation:

+

Invalid value for the Days field (valid range: 1 to 30).

ErrorMessage: restoration days should be at least 1 and at most 30

400 Bad Request

@@ -185,8 +185,8 @@ Date: date

MalformedXML

Explanation:

-

Invalid value for the Tier field.

+

Explanation:

+

Invalid value for the Tier field.

ErrorMessage: The XML you provided was not well-formed or did not validate against our published schema

400 Bad Request

@@ -194,8 +194,8 @@ Date: date

InvalidObjectState

Explanation:

-

The restored object is not in the Cold storage.

+

Explanation:

+

The restored object is not in the Cold storage.

ErrorMessage: Restore is not allowed, as object's storage class is not COLD

403 Forbidden

diff --git a/docs/obs/api-ref/obs_04_0091.html b/docs/obs/api-ref/obs_04_0091.html index fe7fba5fc..a35e9880a 100644 --- a/docs/obs/api-ref/obs_04_0091.html +++ b/docs/obs/api-ref/obs_04_0091.html @@ -74,7 +74,7 @@ Date: date

Explanation:

Metadata operation directive.

Restrictions:

-

None

+

If you want to change the storage class of an object by modifying its metadata, x-obs-metadata-directive must be set to REPLACE_NEW.

Value range:

  • REPLACE_NEW: The metadata that has an existing value is replaced. A value is assigned to the metadata that does not have a value. The metadata that is not specified remains unchanged. Custom metadata is replaced.
  • REPLACE: All original metadata is replaced by metadata specified in the request. Metadata that is not specified (except for x-obs-storage-class) is deleted.

Default value:

@@ -187,7 +187,7 @@ Date: date

Explanation:

If the bucket is configured with website hosting, the request for obtaining the object can be redirected to another object in the bucket or an external URL.

-

In the following example, the request header sets the redirection to an object (anotherPage.html) in the same bucket:

+

In the following example, the request header sets the redirection to an object (anotherPage.html) in the same bucket:

x-obs-website-redirect-location:/anotherPage.html

In the following example, the request header sets the object redirection to an external URL:

x-obs-website-redirect-location:http://www.example.com/

@@ -207,7 +207,7 @@ Date: date

Explanation:

Specifies the storage class of an object.

-

Example: x-obs-storage-class: STANDARD

+

Example: x-obs-storage-class: STANDARD

Restrictions:

The value is case-sensitive.

Value range:

@@ -242,7 +242,7 @@ Date: date

Explanation:

An object's tag information in key-value pairs. Multiple tags can be added at the same time.

-

Example: x-obs-tagging:TagA=A&TagB&TagC

+

Example: x-obs-tagging:TagA=A&TagB&TagC

Restrictions:

  • If a tag key or value contains special characters, equal signs (=), or full-width characters, it must be URL-encoded.
  • If there is no equal sign (=) in a configuration, the tag value is considered left blank.

Value range:

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

Metadata operation directive.

Value range:

  • REPLACE_NEW: The metadata that has an existing value is replaced. A value is assigned to the metadata that does not have a value. The metadata that is not specified remains unchanged. Custom metadata is replaced.
  • REPLACE: All original metadata is replaced by metadata specified in the request. Metadata that is not specified (except for x-obs-storage-class) is deleted.
-

Default value:

+

Default value:

None

Explanation:

If the bucket is configured with website hosting, the request for obtaining the object can be redirected to another object in the bucket or an external URL.

-

In the following example, the request header sets the redirection to an object (anotherPage.html) in the same bucket:

+

In the following example, the request header sets the redirection to an object (anotherPage.html) in the same bucket:

x-obs-website-redirect-location:/anotherPage.html

In the following example, the request header sets the object redirection to an external URL:

x-obs-website-redirect-location:http://www.example.com/

diff --git a/docs/obs/api-ref/obs_04_0098.html b/docs/obs/api-ref/obs_04_0098.html index 4badbcdc4..21e1e8b96 100644 --- a/docs/obs/api-ref/obs_04_0098.html +++ b/docs/obs/api-ref/obs_04_0098.html @@ -69,8 +69,8 @@ Authorization: authorization

Explanation:

When initiating a multipart upload, you can add this header to set an object ACL.

-

Example: x-obs-acl: public-read-write

-

Restrictions:

+

Example: x-obs-acl: public-read-write

+

Restrictions:

Use character strings.

Value range:

  • private
  • public-read
  • public-read-write
@@ -87,9 +87,9 @@ Authorization: authorization

Explanation:

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

-

Example: x-obs-grant-read: ID=domainID.

+

Example: x-obs-grant-read: ID=domainID.

Restrictions:

-

If multiple accounts are authorized, separate them with commas (,).

+

Use commas (,) to separate multiple domains.

Value range:

None

Default value:

@@ -104,12 +104,12 @@ Authorization: authorization

Explanation:

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

-

Example: x-obs-grant-read-acp: ID=domainID.

+

Example: x-obs-grant-read-acp: ID=domainID.

Restrictions:

-

If multiple accounts are authorized, separate them with commas (,).

+

Use commas (,) to separate multiple domains.

Value range:

None

-

Default value:

+

Default value:

None

Explanation:

When initiating a multipart upload, you can use this header to grant all users in a domain the following permissions:

Permissions to read objects, obtain object metadata, obtain object ACLs, and write object ACLs.

-

Example: x-obs-grant-full-control: ID=domainID.

+

Example: x-obs-grant-full-control: ID=domainID.

Restrictions:

-

If multiple accounts are authorized, separate them with commas (,).

+

Use commas (,) to separate multiple domains.

Value range:

None

-

Default value:

+

Default value:

None

No

Explanation:

+

Explanation:

If the bucket is configured with website hosting, the request for obtaining the object can be redirected to another object in the bucket or an external URL.

To another object in the same bucket:

x-obs-website-redirect-location:/anotherPage.html

To an external URL:

x-obs-website-redirect-location:http://www.example.com/

OBS obtains the specified value from the header and stores it in the object metadata WebsiteRedirectLocation.

-

Restrictions:

+

Restrictions:

  • The value must start with a slash (/), http://, or https:// and cannot exceed 2 KB.
  • OBS supports redirection for objects in the root directory of a bucket, not for those in folders.

Default value:

None

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

Explanation:

Indicates that SSE-KMS is used.

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

-

Restrictions:

+

Restrictions:

None

Value range:

  • kms
  • AES256
@@ -210,9 +210,9 @@ Authorization: authorization

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

+

Restrictions:

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

-

Default value:

+

Default value:

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

Explanation:

The algorithm used for encryption.

-

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

+

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

Restrictions:

  • This header is used only when SSE-C is used.
  • This header must be used together with x-obs-server-side-encryption-customer-key and x-obs-server-side-encryption-customer-key-MD5.

Value range:

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

Explanation:

The key used for encrypting an object.

-

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

+

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restrictions:

  • This header is used only when SSE-C is used.
  • This header is a Base64-encoded 256-bit key and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key-MD5.

Value range:

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

Explanation:

The MD5 value of the encryption key. The MD5 value is used to check whether any error occurs during the transmission of the key.

-

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

+

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

Restrictions:

  • This header is used only when SSE-C is used.
  • This header is a Base64-encoded 128-bit MD5 value and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key.

Value range:

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

Explanation:

Specifies when an object expires. It is measured in days. Once the object expires, it is automatically deleted. (The calculation starts from when the object was last modified).

Example: x-obs-expires:3

-

Restrictions:

+

Restrictions:

This parameter can be configured only when uploading the object. It cannot be modified by calling a metadata modification API.

Value range:

An integer greater than or equal to 0, in days

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

Explanation:

An object's tag information in key-value pairs. Multiple tags can be added at the same time.

-

Example: x-obs-tagging:TagA=A&TagB&TagC

+

Example: x-obs-tagging:TagA=A&TagB&TagC

Restrictions:

  • If a tag key or value contains special characters, equal signs (=), or full-width characters, it must be URL-encoded.
  • If there is no equal sign (=) in a configuration, the tag value is considered left blank.

Value range:

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

String

No, but required when x-obs-object-lock-retain-until-date is present.

+

No, but required when x-obs-object-lock-retain-until-date is present.

Explanation:

WORM mode to be applied to an object.

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

String

No, but required when x-obs-object-lock-mode is present.

+

No, but required when x-obs-object-lock-mode is present.

Explanation:

When the WORM policy of the object expires.

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

Explanation:

When initiating a multipart upload, you can use a header starting with x-obs-meta- in the HTTP request to define object metadata for easy management. The custom metadata will be returned in the response when you retrieve the object or query the object metadata.

Example: x-obs-meta-test: test metadata

-

Restrictions:

+

Restrictions:

This parameter can only be passed in HTTP request headers and cannot exceed 8 KB.

Value range:

None

-

Default value:

+

Default value:

None

String

Explanation:

+

Explanation:

The encryption method used by the server.

-

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

-

Restrictions:

+

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

+

Restrictions:

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

Value range:

  • kms
  • AES256
@@ -414,9 +414,9 @@ Connection: status

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

+

Restrictions:

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

-

Default value:

+

Default value:

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

Explanation:

The MD5 value of the encryption key.

-

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

+

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

Restrictions:

This header is included in a response if SSE-C is used for server-side encryption.

Value range:

@@ -470,11 +470,11 @@ Connection: status

Explanation:

Container of a multipart upload task.

-

Restrictions:

+

Restrictions:

None

Value range:

None

-

Default value:

+

Default value:

None

Explanation:

Indicates the bucket name in the multipart upload.

-

Restrictions:

+

Restrictions:

  • A bucket name must be unique across all accounts and regions.
  • A bucket name:
    • Must be 3 to 63 characters long and start with a digit or letter. Lowercase letters, digits, hyphens (-), and periods (.) are allowed.
    • Cannot be formatted as an IP address.
    • Cannot start or end with a hyphen (-) or period (.).
    • Cannot contain two consecutive periods (..), for example, my..bucket.
    • Cannot contain a period (.) and a hyphen (-) adjacent to each other, for example, my-.bucket or my.-bucket.
  • If you repeatedly create buckets of the same name in the same region, no error will be reported and the bucket attributes comply with those set in the first creation request.

Value range:

@@ -497,9 +497,9 @@ Connection: status

String

Explanation:

+

Explanation:

Name of the object in the multipart upload. An object is uniquely identified by an object name in a bucket. An object name is a complete path that does not contain the bucket name.

-

Restrictions:

+

Restrictions:

None

Value range:

The value must contain 1 to 1,024 characters.

@@ -511,9 +511,9 @@ Connection: status

String

Explanation:

+

Explanation:

ID of the multipart upload, which is used to specify a multipart upload in uploading parts

-

Restrictions:

+

Restrictions:

None

Value range:

The value must contain 1 to 32 characters.

diff --git a/docs/obs/api-ref/obs_04_0099.html b/docs/obs/api-ref/obs_04_0099.html index f05e44f3d..96e1ca5c5 100644 --- a/docs/obs/api-ref/obs_04_0099.html +++ b/docs/obs/api-ref/obs_04_0099.html @@ -2,7 +2,7 @@

Uploading Parts

Functions

After a multipart upload task is created, you can upload parts for this task using the obtained multipart upload ID. When parts are uploaded in a multipart upload of an object, the upload sequence does not affect part merging, namely, multiple parts can be uploaded concurrently.

-

Part sizes range from 100 KB to 5 GB. However, when parts are being merged, the size of the last uploaded part ranges from 0 to 5 GB. The upload part ID ranges from 1 to 10,000.

+

Ensure that the part size ranges from 100 KB to 5 GB and the size of the last part ranges from 0 to 5 GB. Otherwise, an error will be reported when you assemble parts. The upload part ID ranges from 1 to 10,000.

This operation supports server-side encryption.

The value of partNumber in a multipart task is unique. If you upload a part of the same partNumber repeatedly, the last part uploaded will overwrite the previous one. When multiple concurrent uploading of the same partNumber part of the same object is performed, the Last Write Win policy is applied. The time of Last Write is defined as the time when the metadata of the part is created. To ensure data accuracy, the client must be locked to ensure concurrent upload of the same part of the same object. Concurrent upload of different parts of the same object does not need to be locked.

@@ -83,7 +83,7 @@ Content-MD5:md5

Explanation:

The algorithm used for encryption.

-

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

+

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

Restrictions:

  • Indicates the encryption algorithm used when SSE-C is used.
  • This header must be used together with x-obs-server-side-encryption-customer-key and x-obs-server-side-encryption-customer-key-MD5.

Value range:

@@ -100,7 +100,7 @@ Content-MD5:md5

Explanation:

The key used for encrypting an object.

-

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

+

Example: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restrictions:

  • This header is used only when SSE-C is used for encryption.
  • This header is a Base64-encoded 256-bit key and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key-MD5.

Value range:

@@ -117,7 +117,7 @@ Content-MD5:md5

Explanation:

The MD5 value of the encryption key. The MD5 value is used to check whether any error occurs during the transmission of the key.

-

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

+

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

Restrictions:

This header is used only when SSE-C is used for encryption.

This header is a Base64-encoded 128-bit MD5 value and must be used together with x-obs-server-side-encryption-customer-algorithm and x-obs-server-side-encryption-customer-key.

@@ -157,9 +157,9 @@ Content-Length: length

String

Explanation:

+

Explanation:

The encryption method used by the server.

-

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

+

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

Restrictions:

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

Value range:

@@ -174,9 +174,9 @@ Content-Length: length

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

+

Restrictions:

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

-

Default value:

+

Default value:

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

Explanation:

The MD5 value of the encryption key.

-

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

+

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

Restrictions:

This header is included in a response if SSE-C is used for server-side encryption.

Value range:

diff --git a/docs/obs/api-ref/obs_04_0100.html b/docs/obs/api-ref/obs_04_0100.html index e000bf0e7..64e54f7e9 100644 --- a/docs/obs/api-ref/obs_04_0100.html +++ b/docs/obs/api-ref/obs_04_0100.html @@ -1,13 +1,13 @@

Copying Parts

-

Functions

After a multipart upload task is created, you can upload parts for this task using the obtained multipart upload ID. Alternatively, you can make an API call to add a part (part of an object or the whole object).

+

Functions

After a multipart upload task is created, you can upload parts for this task using the obtained multipart upload ID. Alternatively, you can make an API call to copy a part or a whole uploaded object as a part.

This operation supports server-side encryption.

You cannot determine whether a request is successful only based on the status_code in the returned HTTP header. If 200 is returned for status_code, the server has received the request and started to process the request. The copy is successful only when the body in the response contains ETag.

Copy the source object and save it as part1. If a part1 already exists before the copying, the original part1 will be overwritten by the newly copied part1. After the copy is successful, only the latest part1 is displayed. The old part1 data will be deleted. Therefore, ensure that the target part does not exist or has no value when using the part copy operation. Otherwise, data may be deleted by mistake. The source object in the copy process does not change.

-

Cold Objects

If source objects are in the Cold storage class, ensure that these objects have been restored before you copy them. If the source object is not restored or is being restored, the copy fails and error 403 Forbidden is returned. The fault is described as follows:

+

Cold Objects

If source objects are in the Cold storage class, ensure that these objects have been restored before you copy them. If the source object is not restored or is being restored, the copy fails and error 403 Forbidden is returned. The fault is described as follows:

ErrorCode: InvalidObjectState

ErrorMessage: Operation is not valid for the source object's storage class

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

Request Headers

In addition the common message headers, the request uses two extended headers. Table 3 describes the common message header.

+

Request Headers

In addition to the common message headers, the request uses two extended headers. Table 3 describes the common message header.

diff --git a/docs/obs/api-ref/obs_04_0102.html b/docs/obs/api-ref/obs_04_0102.html index 6a3abe6c2..c93f1dd10 100644 --- a/docs/obs/api-ref/obs_04_0102.html +++ b/docs/obs/api-ref/obs_04_0102.html @@ -2,7 +2,7 @@

Completing a Multipart Upload

Functions

After all parts are uploaded, you can call this API to assemble specified parts into an object. Before performing this operation, you cannot download the uploaded data. When merging parts, you need to copy the additional message header information recorded during the initialization of the multipart upload task to the object metadata. The processing process is the same as that of the common upload object with these message headers. In the case of merging parts concurrently, the Last Write Win policy must be followed but the time for initiating Last Write is specified as the time when a part multipart upload is initiated.

-

If a multipart upload has not been aborted, the uploaded parts occupy your storage quota. After all parts in the multipart upload are merged to an object, only the object occupies your storage quota. If a part uploaded in a multipart upload is not used in any merging parts multipart uploads, the part will be deleted to release storage quota.

+

As long as the multipart upload is not aborted, all uploaded parts occupy the space. However, after you assembled the specified parts, the uploaded but not assembled parts will be deleted to free up space.

You can send a request for downloading all or some data of the generated multipart by specifying a range.

You can send a request for deleting all parts uploaded in a multipart upload. Deleted data cannot be restored.

The merged parts do not use the MD5 value of entire object as the ETag. Their ETag is calculated as follows: MD5(M1M2...MN)-N, where Mn is the MD5 value of part n (N is the total number of parts). As described in the Sample Request, there are three parts and each part has an MD5 value. The MD5 values of the three parts are recalculated to obtain a new MD5 value. Then -N is added to the right of the MD5 value to get the ETag of the combined parts. In this example, -N is -3.

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

None

Value range:

None

-

Default value:

+

Default value:

None

@@ -199,9 +199,9 @@ Date: date - - - -
Table 2 Request headers

Header

String

Explanation:

+

Explanation:

The encryption method used by the server.

-

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

+

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

Restrictions:

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

Value range:

@@ -216,10 +216,10 @@ Date: date

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

-

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

-

Default value:

-

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

+

Restrictions:

+

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

+

Default value:

+

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

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

@@ -228,7 +228,7 @@ Date: date

Explanation:

The algorithm used for encryption.

-

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

+

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

Restrictions:

This header is included in a response if SSE-C is used for server-side encryption.

Value range:

@@ -258,7 +258,7 @@ Date: date

Explanation:

Path of the object after parts are assembled.

Restrictions:

-

Format: /bucketName/objectName

+

Format: http://bucketName.obs.region.example.com/objectName

Value range:

None

Default value:

@@ -269,7 +269,7 @@ Date: date

String

Explanation:

+

Explanation:

Bucket where parts are assembled

Restrictions:

  • A bucket name must be unique across all accounts and regions.
  • A bucket name:
    • Must be 3 to 63 characters long and start with a digit or letter. Lowercase letters, digits, hyphens (-), and periods (.) are allowed.
    • Cannot be formatted as an IP address.
    • Cannot start or end with a hyphen (-) or period (.).
    • Cannot contain two consecutive periods (..), for example, my..bucket.
    • Cannot contain a period (.) and a hyphen (-) adjacent to each other, for example, my-.bucket or my.-bucket.
    @@ -284,7 +284,7 @@ Date: date

String

Explanation:

+

Explanation:

Object name obtained after part assembling.

An object is uniquely identified by an object name in a bucket. An object name is a complete path that does not contain the bucket name.

Restrictions:

@@ -299,7 +299,7 @@ Date: date

String

Explanation:

+

Explanation:

The ETag that uniquely identifies the object after its parts were assembled, calculated based on the ETag of each part.

Restrictions:

If an object is encrypted using server-side encryption, the ETag is not the MD5 value of the object.

@@ -387,11 +387,11 @@ Date: WED, 01 326 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<CompleteMultipartUploadResult xmlns="http://obs.example.com/doc/2015-06-30/"> - <Location>/examplebucket/object02</Location> - <Bucket>examplebucket</Bucket> - <Key>object02</Key> - <ETag>"03f814825e5a691489b947a2e120b2d3-3"</ETag> +<CompleteMultipartUploadResult xmlns="http://obs.region.example.com/doc/2015-06-30/"> + <Location>http://examplebucket.obs.region.example.com/object02</Location> + <Bucket>examplebucket</Bucket> + <Key>object02</Key> + <ETag>"03f814825e5a691489b947a2e120b2d3-3"</ETag> </CompleteMultipartUploadResult>
diff --git a/docs/obs/api-ref/obs_04_0105.html b/docs/obs/api-ref/obs_04_0105.html index 9baec12e7..f9da645ef 100644 --- a/docs/obs/api-ref/obs_04_0105.html +++ b/docs/obs/api-ref/obs_04_0105.html @@ -7,6 +7,7 @@

With SSE-KMS, OBS uses the keys provided by KMS for server-side encryption. You can create custom keys on KMS to encrypt your objects.

With SSE-C, OBS uses the keys and MD5 values provided by customers for server-side encryption.

When server-side encryption is used, the returned ETag value is not the object's MD5 value.

+

When server-side encryption is used, you are advised to use HTTPS to transmit and receive data.

Explanation:

Indicates that SSE-KMS is used for server-side encryption.

-

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

+

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

Restrictions:

None

Value range:

@@ -39,9 +39,9 @@

Explanation:

ID of a specified key used for SSE-KMS encryption.

-

Restrictions:

+

Restrictions:

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

-

Default value:

+

Default value:

If you specify kms for encryption but do not specify a key ID, the default master key will be used. If there is not a default master key, OBS will create one and use it.

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 objects with PUT or POST, appending content to objects, initiating a multipart upload, and 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

@@ -26,6 +25,16 @@

Supported

Copying an object

+

Copying an Object

+

obs:object:GetObject

+

obs:object:PutObject

+

Supported

+

Obtaining the content and metadata of an object

Downloading an Object

@@ -66,7 +75,7 @@

Supported

Restoring Cold objects

+

Restoring Cold objects

Restoring Cold Objects

Querying Object Metadata

obs:object:GetObjectRetention

+

obs:object:GetObject

Supported

Obtaining object tags

Obtaining Object Tags

+

Obtaining Object Tags

obs:object:GetObjectTagging

Deleting object tags

Deleting Object Tags

+

Deleting Object Tags

obs:object:DeleteObjectTagging

Table 2 Error codes

Status Code

+
@@ -484,9 +484,9 @@ QUFBQUFBYmJiYmJiYmJD</HostId> - - - @@ -610,7 +610,7 @@ QUFBQUFBYmJiYmJiYmJD</HostId> - @@ -631,7 +631,7 @@ QUFBQUFBYmJiYmJiYmJD</HostId> - + + + + + + + + + + - + + + + +
Table 2 Error codes

Status Code

Error Code

TooManyCustomDomains

Too many user accounts are configured.

+

Too many custom domains are configured.

Delete some user accounts and try again.

+

Delete some custom domains and try again.

400 Bad Request

@@ -601,7 +601,7 @@ QUFBQUFBYmJiYmJiYmJD</HostId>

InvalidObjectState

You need to restore Cold objects before downloading them.

+

You need to restore Cold objects before downloading them.

Restore the object first.

NotSignedUp

Your account has not been registered with the system. Only a registered account can be used.

+

You have not registered with the system.

Register 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 calculation method.

403 Forbidden

@@ -833,13 +833,31 @@ QUFBQUFBYmJiYmJiYmJD</HostId>

Ensure the new name indicates a consistent object type (file or directory) and has yet been used.

409 Conflict

+

FsRenameConflict

+

The rename operation conflicts with another operation that is being performed on the object.

+

Check the service logic to prevent unexpected operation results caused by concurrent operations on the same object.

+

409 Conflict

+

DirectoryNotEmpty

+

Non-empty directories cannot be deleted.

+

Empty the directory first.

+

409 ObjectNotAppendable

ObjectNotAppendable

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

@@ -878,6 +896,16 @@ QUFBQUFBYmJiYmJiYmJD</HostId>

Retry with the correct range.

429 Too Many Requests

+

TooManyRequests

+

There are too many requests in a short period of time.

+

For example, there are too many concurrent requests for the metadata of the same object or bucket, such as concurrent object metadata modification, object upload, and object write.

+

Reduce the number of requests or concurrent requests.

+

500 Internal Server Error

InternalError

diff --git a/docs/obs/api-ref/en-us_topic_0000001399487626.html b/docs/obs/api-ref/obs_04_0164.html similarity index 50% rename from docs/obs/api-ref/en-us_topic_0000001399487626.html rename to docs/obs/api-ref/obs_04_0164.html index 0e3600f9f..824327bf6 100644 --- a/docs/obs/api-ref/en-us_topic_0000001399487626.html +++ b/docs/obs/api-ref/obs_04_0164.html @@ -1,13 +1,13 @@ - +

Obtaining Object Tags

-

Functions

This operation returns tags of an object.

-

If you do not specify a version ID in a request, make sure that you have the GetObjectTagging permission. If you do specify a version ID in a request, make sure that you have the GetObjectTagging and GetObjectVersionTagging permissions. By default, only the object owner can perform this operation. The object owner can grant this permission to others by using a bucket or user policy.

-

OBS returns the tags of the current object version by default. You can use the versionId parameter to retrieve tags of any other version. If the version you are retrieving tags from is a delete marker, OBS returns 404 Not Found.

+

Functions

This operation returns tags of an object.

+

If you do not specify a version ID in a request, make sure that you have the GetObjectTagging permission. If you do specify a version ID in a request, make sure that you have the GetObjectTagging and GetObjectVersionTagging permissions. By default, only the object owner can perform this operation. The object owner can grant this permission to others by using a bucket or user policy.

+

OBS returns the tags of the current object version by default. You can use the versionId parameter to retrieve tags of any other version. If the version you are retrieving tags from is a delete marker, OBS returns 404 Not Found.

-

Tags are not supported for files in parallel file systems.

+

Tags are not supported for files in parallel file systems.

-

Request Syntax

1
+

Request Syntax

1
 2
 3
 4
GET /objectname?tagging&versionId=versionid HTTP/1.1
@@ -17,13 +17,13 @@ Authorization: authorization strin
 
-

Request Parameters

This request contains no message parameters.

+

Request Parameters

This request contains no message parameters.

-

Request Headers

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

+

Request Headers

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

-

Request Elements

This request involves no elements.

+

Request Elements

This request involves no elements.

-

Response Syntax

 1
+

Response Syntax

 1
  2
  3
  4
@@ -57,32 +57,32 @@ Date: date
 
-

Response Headers

This response uses common headers. For details, see Table 1.

+

Response Headers

This response uses common headers. For details, see Table 1.

-

Response Elements

For more information about the object tag elements returned in the response, see Table 3.

+

Response Elements

For more information about the object tag elements returned in the response, see Table 3.

-

Error Responses

In addition to common error codes, this API also returns others. Table 1 lists the common errors and possible causes.

+

Error Responses

In addition to common error codes, this API also returns others. Table 1 lists the common errors and possible causes.

-
Table 1 Error codes of obtaining object tags

Error Code

+
- - - - -
Table 1 Error codes of obtaining object tags

Error Code

Description

+

Description

HTTP Status Code

+

HTTP Status Code

NoSuchTagSet

+

NoSuchTagSet

No tags were configured for the specified object.

+

No tags were configured for the specified object.

404

+

404

-

Sample Request

1
+

Sample Request

1
 2
 3
 4
@@ -96,7 +96,7 @@ Authorization: OBS H4IPJX0TQTHTHEB
 
-

Sample Response

 1
+

Sample Response

 1
  2
  3
  4
diff --git a/docs/obs/api-ref/obs_04_0165.html b/docs/obs/api-ref/obs_04_0165.html
new file mode 100644
index 000000000..3b1035b80
--- /dev/null
+++ b/docs/obs/api-ref/obs_04_0165.html
@@ -0,0 +1,80 @@
+
+
+

Deleting Object Tags

+

Functions

This operation deletes tags from an object.

+

If you do not specify a version ID in a request, make sure that you have the DeleteObjectTagging permission. If you do specify a version ID in a request, make sure that you have the DeleteObjectTagging and DeleteObjectVersionTagging permissions. By default, only the object owner can perform this operation. The object owner can grant this permission to others by using a bucket or user policy.

+

OBS deletes tags from the current object version by default. You can use the versionId parameter to delete tags from any other version. If the version you are deleting tags from is a delete marker, OBS returns 404 Not Found.

+
+

Tags are not supported for files in parallel file systems.

+
+

Request Syntax

1
+2
+3
+4
DELETE /objectname?tagging&versionId=versionid  HTTP/1.1  
+Host: bucketname.obs.region.example.com
+Date: date
+Authorization: authorization string
+
+
+
+

Request Parameters

This request contains no message 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
HTTP/1.1 status_code
+x-obs-request-id: request id
+x-obs-id-2: id
+x-obs-version-id: version id
+Content-Length: length
+Date: date
+
+
+
+

Response Headers

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

+
+

Response Elements

This response contains no elements.

+
+

Error Responses

No special error responses are returned. For details, see Table 2. If the object has no tags or the tag deletion is successful, OBS returns a 204 error.

+
+

Sample Request

1
+2
+3
+4
+5
+6
DELETE /objectname?tagging&versionId=G001018455096CE600005306000000DD HTTP/1.1   
+User-Agent: curl/7.19.7    
+Host: bucketname.obs.region.example.com
+Accept: */*   
+Date: Wed, 27 Jun 2018 13:46:58 GMT   
+Authorization: authorization string
+
+
+
+

Sample Response

1
+2
+3
+4
+5
+6
HTTP/1.1 204 No Content 
+x-obs-request-id: 0002B7532E0000015BEB2C212E53A17L 
+x-obs-id-2: CqT+86nnOkB+Cv9KZoVgZ28pSgMF+uGQBUC68flvkQeq6CxoCz65wWFMNBpXvea4 
+x-obs-version-id: G001018455096CE600005306000000DD
+Content-Length: 0
+Date: Wed, 27 Jun 2018 13:46:58 GMT
+
+
+
+
+
+ +
+