Configuring Bucket Storage Quota
Function
By default, there are no limits on the total size or number of objects you can store in OBS or even in a single bucket. You can set a storage quota to limit how much data a bucket can store. When the quota is exceeded, object uploads will fail and return HTTP status code 403 Forbidden with the error code InsufficientStorageSpace. In this case, to continue uploading objects, you can increase the quota, remove the quota limit by setting it to 0, or delete unneeded objects from the bucket.
A bucket quota can control object uploading only after the quota is set. If the bucket quota is less than the capacity of the uploaded objects, the existing objects will not be deleted, but new objects cannot be uploaded. In this case, you can upload new objects only after deleting some existing objects until the used storage capacity is less than the quota limit.
For more information about bucket quotas, see Managing Bucket Quotas.
Constraints
- A bucket quota must be a non-negative integer, in bytes. The maximum value is 263 – 1.
- OBS does not provide an API for deleting a bucket quota. You can set the bucket quota to 0 to remove the limit.
- The bucket storage quota is checked against backend-calculated usage. Since this calculation is not real-time, the quota may take effect with a delay. As a result, the actual storage usage may exceed the quota or the usage may not drop immediately after data is deleted. For details about how to query bucket storage usage, see Obtaining Storage Information of a Bucket.
Authorization
To call this API, you must be the bucket owner or have the permission to configure a storage quota for a bucket. You are advised to use IAM or bucket policies for authorization. For details about OBS authorization methods, see Differences Between OBS Permissions Control Methods.
- If you use IAM for authorization, you need to use either role/policy-based authorization or identity policy-based authorization and configure the required permissions:
- If you use role/policy-based authorization (IAM v3 APIs in the old IAM version), you must have the obs:bucket:PutBucketQuota permission. For details, see Creating a Custom IAM Policy.
- If you use identity policy-based authorization (IAM v5 APIs in the new IAM version), you must have the obs:bucket:putBucketQuota permission, as shown in the following table. For details, see Creating a Custom IAM Identity Policy.
Action
Access Level
Resource Type (*: Required)
Dependencies
obs:bucket:putBucketQuota
Write
bucket *
-
-
-
- obs:EpochTime
- obs:SourceIp
- obs:TlsVersion
- obs:CustomDomain
- If you use bucket policies for authorization, you must have the obs:bucket:PutBucketQuota permission. For details, see Creating a Custom Bucket Policy.
URI
PUT /
Calling Method
For details, see Calling APIs. Before calling this API, calculate the API signature and add it to the request.
You can debug this API in API Explorer.
Request Syntax
The following is an example request. Replace BucketName with your bucket name and RegionID with the ID of the region where your bucket resides. You can obtain the region ID by referring to Supported Regions.
1 2 3 4 5 6 7 8 9 10 | PUT /?quota HTTP/1.1 Host: BucketName.obs.RegionID.myhuaweicloud.com Date: GMT Date Content-Length: BodyLength Authorization: SignatureValue <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Quota xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/"> <StorageQuota>value</StorageQuota> </Quota> |
URI Parameters
This request contains no URI parameters.
Request Headers
This request uses common headers. For details, see Table 3.
Request Body
This request needs a request body parameter to specify the bucket storage quota. For details, see Table 1.
Response Syntax
1 2 3 | HTTP/1.1 status_code Date: date Content-Length: length |
Response Headers
This response uses common headers. For details, see Table 1.
Response Body
This response does not contain a response body.
Error Responses
No special errors. You can find all errors in Table 2.
Sample Request
1 2 3 4 5 6 7 8 9 10 11 | PUT /?quota HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 03:24:37 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:k/rbwnYaqYf0Ae6F0M3OJQ0dmI8= Content-Length: 106 <Quota xmlns="http://obs.ap-southeast-1.myhuaweicloud.com/doc/2015-06-30/"> <StorageQuota>10240000</StorageQuota> </Quota> |
Sample Response
1 2 3 4 5 6 7 | HTTP/1.1 100 Continue HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016435E09A2BCA388688AA08 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSHbmBecv7ohDSvqaRObpxzgzJ9+l8xT Date: WED, 01 Jul 2015 03:24:37 GMT Content-Length: 0 |
Using SDKs to Call APIs
You are advised to use OBS SDKs to call APIs. SDKs encapsulate APIs to simplify development. You can call SDK API functions to access OBS without manually calculating signatures.
Helpful Links
- For more information about bucket quotas, see Managing Bucket Quotas.
- For details about the billing items involved in API operations, see Billing Items.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot