Using Image Processing with APIs
Process
You can call OBS Representational State Transfer (REST) APIs to access image processing. In the REST architectural style, resources on a network are identified by Uniform Resource Identifiers (URIs) and applications on clients locate resources using Uniform Resource Locators (URLs). The URL is in the https://Endpoint/uri format. By putting a URL that complies with the command rules of image processing in a browser, you can get the new image after processing.
Figure 1 shows the flowchart of using image processing with REST APIs.
Creating an Account and Enabling OBS
Before using image processing, you must have a cloud service account and enable OBS. Once OBS is enabled, image processing is available for use. To use OBS properly, make sure that you have sufficient account balance or you have a valid payment method. If you have already enabled OBS and you can use it properly, skip this section.
- Visit the Huawei Cloud official website.
- Click Sign Up in the upper right corner.
- Complete the account creation as instructed.
After the creation is complete, you will be navigated to your information page.
- Create an OBS bucket, so that you can use image processing properly.
Uploading an image
You can upload images using OBS Console, OBS Browser+, or REST APIs.
For details, see Uploading an Object.
Skip this section if the image to be processed already exists in your bucket.
If you want to use a user-defined domain name for image processing, you need to grant anonymous users the read permission for the image. For more information, see Granting All Accounts the Read Permission for Certain Objects.
Processing the Image
This section describes the URL constitution to process images using REST APIs. Once you have enabled OBS successfully, you can call REST APIs to process images simply by putting a URL that complies with the command rules of image processing in a browser.
URL Composition
A URL consists of the OBS domain name, bucket name, the original image name, and processing command or style name.
Access with Commands
URL format: https://bucketName.endpoint/objectName?x-image-process=image/commands
- endpoint represents the endpoint address of the region where the bucket is located. You can obtain the endpoint from the bucket's basic information. For more information, see Regions and Endpoints.
- bucketName represents the name of the bucket that accommodates the image to be processed on OBS.
- objectName represents the name of the original image stored in the bucketName bucket. The name suffix must be supported by image processing.
- commands represents the processing commands. Three types of delimiters can be used between commands or command parameters. If no commands are specified, the original image will be returned.
Example URL: https://hw-image-demo.obs.ap-southeast-1.myhuaweicloud.com/example.jpg?x-image-process=image/crop,x_100,y_50
Delimiters are used to separate one field from another in the commands in a URL. For details, see Table 1.
Name |
Character |
Sequence |
Description |
---|---|---|---|
Parameter delimiter |
_ |
Fixed |
Delimiter between a parameter and its value |
Command delimiter |
, |
Irrelevant |
Delimiter between command parameters |
Pipe delimiter |
/ |
Relevant |
Delimiter between two processing commands. See Pipes. |
If an image needs to be processed by multiple operations (for example, it needs to be cropped first and then resized), the operation commands must be separated with pipe delimiters (/). The operations (also pipes) will be executed sequentially from left to right.
For example, https://image-demo.obs.ap-southeast-1.myhuaweicloud.com/example.jpg?x-image-process=image/resize,w_100,h_100/quality,q_80 are two pipes executed from left to right. The output of the left command becomes the input of the right command.
Access with a Style Name
URL format: https://bucketName.endpoint/objectName?x-image-process=style/stylename
- endpoint represents the endpoint address of the region where the bucket is located. You can obtain the endpoint from the bucket's basic information. For more information, see Regions and Endpoints.
- bucketName is the bucket name on OBS.
- objectName represents the name of the original image stored in the bucketName bucket. The name suffix must be supported by image processing.
- stylename is the name of an existing style in the bucketName bucket on OBS Console. At present, REST APIs cannot be used to perform operations related to styles, such as creating, changing, or deleting styles.
Example URL: https://image-demo.obs.obs.ap-southeast-1.myhuaweicloud.com/example.jpg?x-image-process=style/stylename
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