Obtaining Object Tags (SDK for Java)
Function
This API is used to obtain the tags of an object. For more information about object tags, see Adding Tags to an Object.
If there is no object version ID (indicated by versionId) contained in the request, you must have the GetObjectTagging permission. If you 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 policy or a 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 is a delete marker, OBS returns 404 Not Found.
If you have any questions during development, post them on the Issues page of GitHub.
Restrictions
- Object tags are now in open beta testing, and you can use them for free. Once the testing period is over, you will be billed for using object tags.
- To read or write object tags, you must be the object owner or have required permissions. Such permissions can be granted using bucket policies.
- During cross-region replication, tags of source objects are not copied.
- Tags cannot be added to files in parallel file systems.
- Currently, object tags cannot be used in IAM permissions or bucket policies.
- An object can have up to 10 tags.
- Constraints on the tag key and value:
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: ,/|<>=*\
A tag value is case sensitive and can be left blank. It cannot exceed 255 characters. The following characters are not allowed: ,/|<>=*\
Method
ObjectTagResult getObjectTagging(ObjectTaggingRequest request)
Request Parameters
| Parameter | Type | Mandatory (Yes/No) | Description |
|---|---|---|---|
| request | Yes | Explanation: Request parameters for obtaining object tags. For details, see Table 2. |
Responses
| Method | Return Value Type | Description |
|---|---|---|
| getObjectTagging(ObjectTaggingRequest request) | Results returned for the request to obtain object tags. |
| Parameter | Type | Description |
|---|---|---|
| tagSet | Explanation: Object tags that identify the objects the rule applies to. For details, see Table 4. Default value: None | |
| statusCode | 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 |
| 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 |
| Parameter | Type | Description |
|---|---|---|
| tags | List<Tag> | Explanation: Object tag list. For details, see Table 5. |
| Parameter | Type | Description |
|---|---|---|
| key | String | Explanation: Name of a tag. Default value: None |
| value | String | Explanation: Tag value. Default value: None |
Code Examples
This example obtains the tags of object exampleObjectKey in bucket examplebucketname.
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 | import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.BucketTagInfo.TagSet; import com.obs.services.model.ObjectTagResult; import com.obs.services.model.ObjectTaggingRequest; import java.util.List; public class GetObjectTagging001 { 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. CN-Hong Kong is used here as an example. Replace it with the one currently in use. String endPoint = "https://obs.ap-southeast-1.myhuaweicloud.com"; // Obtain an endpoint using environment variables or import it in other ways. //String endPoint = System.getenv("ENDPOINT") // Create an ObsClient instance. try (ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint)) { // Obtain object tags. String bucketName = "examplebucketname"; String objectKey = "exampleObjectKey"; String objectVersionId = ""; ObjectTaggingRequest objectTaggingRequest = new ObjectTaggingRequest(bucketName, objectKey, objectVersionId, null); ObjectTagResult objectTagResult = obsClient.getObjectTagging(objectTaggingRequest); System.out.println("tags of " + objectKey + ":"); List<TagSet.Tag> tags = objectTagResult.getTagSet().getTags(); for (TagSet.Tag tag : tags) { System.out.println("tag key:" + tag.getKey() + ", tag value:" + tag.getValue()); } System.out.println("GetObjectTagging successfully"); } catch (ObsException e) { System.out.println("GetObjectTagging 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("GetObjectTagging 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.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot