Obtaining Bucket Metadata (SDK for Java)
Function
This API returns information about a bucket, including the storage class, region, CORS rules, and redundancy policy.
Restrictions
- To obtain bucket metadata, you must be the bucket owner or have the required permission (obs:bucket:HeadBucket in IAM or HeadBucket in a bucket policy). For details, see Introduction to OBS Access Control, IAM Custom Policies, and Creating a Custom Bucket Policy.
- For details about values for methods such as BucketMetadataInfoResult.getAllowMethods, see the CORS configurations of the bucket.
Method
obsClient.getBucketMetadata(BucketMetadataInfoRequest request)
Request Parameters
Parameter |
Type |
Mandatory (Yes/No) |
Description |
---|---|---|---|
request |
Yes |
Explanation: Request parameters for obtaining bucket metadata. For details, see Table 2. |
Parameter |
Type |
Mandatory (Yes/No) |
Description |
---|---|---|---|
bucketName |
String |
Yes |
Explanation: Bucket name. Restrictions:
Default value: None |
origin |
String |
No |
Explanation: Origin of the cross-domain request specified by the preflight request. Generally, it is a domain name. Restrictions: You can configure one or more rules and use at most one wildcard character (*) in each rule. If you want to configure multiple rules, separate them using a line breaker. Default value: None |
requestHeaders |
List<String> |
No |
Explanation: HTTP headers in a cross-origin request. Only CORS requests matching the allowed headers are valid. Restrictions: You can enter multiple allowed headers, with one separated from another using a line break. Each header can contain one wildcard character (*) at most. Spaces, ampersands (&), colons (:), and less-than signs (<) are not allowed. Default value: None |
Responses
Parameter |
Type |
Description |
---|---|---|
statusCode |
int |
Explanation: HTTP status code. Value range: A status code is a group of digits that can be 2xx (indicating successes) or 4xx or 5xx (indicating errors). It indicates the status of a response. For more information, see Status Code. Default value: None |
responseHeaders |
Map<String, Object> |
Explanation: HTTP response header list, composed of tuples. In a tuple, the String key indicates the name of the header, and the Object value indicates the value of the header. Default value: None |
location |
String |
Explanation: Region where a bucket is located. Restrictions: If the endpoint used is obs.myhuaweicloud.eu, this parameter is not required. If any other endpoints are used, this parameter is required. Default value: If obs.myhuaweicloud.eu is used as the endpoint and no region is specified, eu-west-101 (the EU-Dublin region) is used by default. |
obsVersion |
String |
Explanation: OBS version of the bucket. Value range:
Default value: None |
storageClass |
Explanation: Bucket storage class that can be specified at bucket creation. Value range: See Table 5. Default value: STANDARD |
|
allowOrigin |
String |
Explanation: If Origin in the request meets the CORS rules of the bucket, AllowedOrigin specified in the CORS rules is returned. Restrictions: You can configure one or more rules and use at most one wildcard character (*) in each rule. If you want to configure multiple rules, separate them using a line breaker. Default value: None |
allowHeaders |
List<String> |
Explanation: If RequestHeader in the request meets the CORS rules of the bucket, AllowedHeader specified in the CORS rules is returned. Restrictions: You can enter multiple allowed headers, with one separated from another using a line break. Each header can contain one wildcard character (*) at most. Spaces, ampersands (&), colons (:), and less-than signs (<) are not allowed. Default value: None |
allowMethods |
List<String> |
Explanation: The allowed HTTP methods for a cross-origin request, indicating the operation types of buckets and objects. Value range: The following HTTP methods are supported:
Default value: None |
exposeHeaders |
List<String> |
Explanation: The CORS-allowed additional headers in the response. These headers provide additional information to clients. By default, your browser can only access headers Content-Length and Content-Type. If your browser needs to access other headers, add them to the list of the allowed additional headers. Restrictions: Spaces, wildcard characters (*), ampersands (&), colons (:), and less-than signs (<) are not allowed. Default value: None |
maxAge |
int |
Explanation: Time your client can cache the response for a cross-origin request Restrictions: Each CORS rule can contain only one maxAge. Value range: An integer greater than 0, in seconds Default value: 100 |
epid |
String |
Explanation: Enterprise project ID that can be specified at bucket creation. If you have enabled EPS, you can obtain the project ID from the EPS console. Restrictions: The value of Epid is a UUID. If the default enterprise project is used, 0 is passed here or Epid is not included. Epid is not required for those who have not enabled the EPS. Example: 9892d768-2d13-450f-aac7-ed0e44c2585f Value range: See How Do I Obtain an Enterprise Project ID? Default value: None |
availableZone |
Explanation: Data redundancy policy of the bucket, indicating whether data is stored in a single AZ or multiple AZs. For details, see Table 4. Restrictions: Value 3az means that data is stored in multiple AZs in the same region. If this header is not contained, data is stored in a single AZ. Default value: None |
Constant |
Default Value |
Description |
---|---|---|
STANDARD |
STANDARD |
Standard storage class. |
WARM |
WARM |
Infrequent Access storage class. |
COLD |
COLD |
Archive storage class. |
Code Examples
This example obtains the metadata of bucket examplebucket. The origin of the cross-origin request is http://www.exampleorigin.com.
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.BucketMetadataInfoRequest; import com.obs.services.model.BucketMetadataInfoResult; public class GetBucketMetadata001 { public static void main(String[] args) { // Obtain an AK/SK pair using environment variables or import the AK/SK pair in other ways. Using hard coding may result in leakage. // Obtain an AK/SK pair on the management console. String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // (Optional) If you are using a temporary AK/SK pair and a security token to access OBS, you are advised not to use hard coding, which may result in information leakage. // Obtain an AK/SK pair and a security token using environment variables or import them in other ways. // String securityToken = System.getenv("SECURITY_TOKEN"); // Enter the endpoint corresponding to the bucket. EU-Dublin is used here as an example. Replace it with the one in your actual situation. String endPoint = "https://obs.eu-west-101.myhuaweicloud.eu"; // Obtain an endpoint using environment variables or import it in other ways. // String endPoint = System.getenv("ENDPOINT"); // Create an ObsClient instance. // Use the permanent AK/SK pair to initialize the client. ObsClient obsClient = new ObsClient(ak, sk,endPoint); // Use the temporary AK/SK pair and security token to initialize the client. // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { // Example bucket name String exampleBucket = "examplebucket"; //Example origin String exampleOrigin = "http://www.exampleorigin.com"; BucketMetadataInfoRequest request = new BucketMetadataInfoRequest(exampleBucket); // Specify setOrigin only when cross origin resource sharing (CORS) is used. request.setOrigin(exampleOrigin); // Obtain the bucket metadata. BucketMetadataInfoResult result = obsClient.getBucketMetadata(request); System.out.println("GetBucketMetadata successfully"); System.out.println("GetBucketType:" + result.getBucketType()); System.out.println("GetLocation:" + result.getLocation()); System.out.println("GetBucketStorageClass:" + result.getBucketStorageClass()); System.out.println("GetObsVersion:" + result.getObsVersion()); System.out.println("GetAllowOrigin:" + result.getAllowOrigin()); System.out.println("GetMaxAge:" + result.getMaxAge()); System.out.println("GetAllowHeaders:" + result.getAllowHeaders()); System.out.println("GetAllowMethods:" + result.getAllowMethods()); System.out.println("GetExposeHeaders:" + result.getExposeHeaders()); } catch (ObsException e) { System.out.println("GetBucketMetadata failed"); // Request failed. Print the HTTP status code. System.out.println("HTTP Code:" + e.getResponseCode()); // Request failed. Print the server-side error code. System.out.println("Error Code:" + e.getErrorCode()); // Request failed. Print the error details. System.out.println("Error Message:" + e.getErrorMessage()); // Request failed. Print the request ID. System.out.println("Request ID:" + e.getErrorRequestId()); System.out.println("Host ID:" + e.getErrorHostId()); e.printStackTrace(); } catch (Exception e) { System.out.println("GetBucketMetadata failed"); // Print other error information. e.printStackTrace(); } } } |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.