Configuring Direct Reading for a Bucket (SDK for Python)
Function
The direct reading function means that you can directly perform operations on ArchiveCold objects without restoring them.
By default, direct reading is disabled for a bucket.
This API is used to enable or disable direct reading for a bucket.
- If you set the direct reading status of a bucket to Enabled:
- You can directly operate the ArchiveCold objects in the bucket regardless of whether they have been restored.
- Operations on the ArchiveCold objects that are not restored will be billed separately.
- If you set the direct reading status of a bucket to Disabled:
- You need to restore the ArchiveCold objects in the bucket before you can operate them.
The direct reading function means that you can directly perform operations on ArchiveCold objects without restoring them. For more information about direct reading, see Direct Reading.
Restrictions
- To configure direct reading for a bucket, you must be the bucket owner or have the required permission (obs:bucket:PutDirectColdAccessConfiguration granted using IAM or PutDirectColdAccessConfiguration granted using a bucket policy). For details, see Introduction to OBS Access Control, IAM Custom Policies, and Creating a Custom Bucket Policy.
- The mapping between OBS regions and endpoints must comply with what is listed in Regions and Endpoints.
- Direct reading is not available for fusion buckets.
Method
ObsClient.setBucketDirectColdAccess(bucketName, directColdAccessConfiguration, extensionHeaders)
Request Parameters
| Parameter | Type | Mandatory (Yes/No) | Description |
|---|---|---|---|
| bucketName | str | Yes | Explanation: Bucket name Restrictions:
Default value: None |
| directColdAccessConfiguration | Yes | Explanation: Direct reading configuration of a bucket. For details, see Table 1. | |
| extensionHeaders | dict | No | Explanation: Extension headers Value range: See User-defined Headers (SDK for Python). Default value: None |
Responses
| Type | Description |
|---|---|
| Explanation: SDK common results |
| Parameter | Type | Description |
|---|---|---|
| status | int | Explanation: HTTP status code Value range: A status code is a group of digits indicating the status of a response. It ranges from 2xx (indicating successes) to 4xx or 5xx (indicating errors). For more information, see Status Code. Default value: None |
| reason | str | Explanation: Reason description Default value: None |
| errorCode | str | Explanation: Error code returned by the OBS server. If the value of status is less than 300, this parameter is left blank. Default value: None |
| errorMessage | str | Explanation: Error message returned by the OBS server. If the value of status is less than 300, this parameter is left blank. Default value: None |
| requestId | str | Explanation: Request ID returned by the OBS server Default value: None |
| indicator | str | Explanation: Error indicator returned by the OBS server Default value: None |
| hostId | str | Explanation: Requested server ID. If the value of status is less than 300, this parameter is left blank. Default value: None |
| resource | str | Explanation: Error source (a bucket or an object). If the value of status is less than 300, this parameter is left blank. Default value: None |
| header | list | Explanation: Response header list, composed of tuples. Each tuple consists of two elements, respectively corresponding to the key and value of a response header. Default value: None |
| body | object | Explanation: Result content returned after the operation is successful. If the value of status is larger than 300, this parameter is left blank. The value varies with the API being called. For details, see the sections "Bucket-Related APIs" and "Object-Related APIs". Default value: None |
Sample Code
This example configures the DirectColdAccess policy for bucket examplebucket.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | from obs import ObsClient, DirectColdAccessConfiguration import os import traceback # Obtain an AK/SK pair using environment variables (recommended) or import it in other ways. Using hard coding may result in leakage. # Obtain an AK and SK pair on the management console. For details, see https://support.huaweicloud.com/intl/en-us/usermanual-ca/ca_01_0003.html. ak = os.getenv("AccessKeyID") sk = os.getenv("SecretAccessKey") # If you use a temporary AK/SK pair and a security token to access OBS, obtain them from environment variables. # security_token = os.getenv("SecurityToken") # Set server to the endpoint corresponding to the bucket. CN-Hong Kong is used here as an example. Replace it with the one currently in use. server = "https://obs.ap-southeast-1.myhuaweicloud.com" # Create an obsClient instance. # If you use a temporary AK/SK pair and a security token to access OBS, you must specify security_token when creating an instance. obsClient = ObsClient(access_key_id=ak, secret_access_key=sk, server=server) try: bucketName = "examplebucket" config = DirectColdAccessConfiguration(status='Enabled') # Set the DirectColdAccess policy for the bucket. resp = obsClient.setBucketDirectColdAccess(bucketName, config) # If status code 2xx is returned, the API call succeeds. Otherwise, the API call fails. if resp.status < 300: print('Set Bucket DirectColdAccess Succeeded') print('requestId:', resp.requestId) else: print('Set Bucket DirectColdAccess Failed') print('requestId:', resp.requestId) print('errorCode:', resp.errorCode) print('errorMessage:', resp.errorMessage) except Exception: print('Set Bucket DirectColdAccess Failed') print(traceback.format_exc()) |
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