更新时间:2024-08-09 GMT+08:00

如何通过URL访问图片处理服务?

访问非公共可读的图片

针对非公共可读的图片,需要在计算签名时加上图片处理参数,最终通过生成带签名的临时URL来访问。

如下为一个简单的Java SDK示例代码供参考,详细的SDK使用可参考SDK使用文档
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Endpoint以中国-香港区域为例,其他区域请按实际情况填写
String endPoint = "https://obs.ap-southeast-1.myhuaweicloud.com"; 
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;
// 本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY。
// 您可以登录访问管理控制台获取访问密钥AK/SK。获取方式请参见https://support.huaweicloud.com/intl/zh-cn/usermanual-ca/ca_01_0003.html
String ak = System.getenv("ACCESS_KEY_ID");
String sk = System.getenv("SECRET_ACCESS_KEY");
 
// 创建ObsClient实例 
ObsClient obsClient = new ObsClient(ak, sk, endPoint); 

// URL有效期,3600秒 
long expireSeconds = 3600L;   
TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, expireSeconds); request.setBucketName("bucketname"); 
request.setObjectKey("objectname");  

// 设置图片处理参数  
Map<String,Object> queryParams = new HashMap<String, Object>(); 
queryParams.put("x-image-process", "image/resize,m_fixed,w_100,h_100/rotate,100"); request.setQueryParams(queryParams);  

// 获取支持图片处理的URL
TemporarySignatureResponse response = obsClient.createTemporarySignature(request);
System.out.println("Getting object using temporary signature url:"); 
System.out.println("\t" + response.getSignedUrl()); 

访问公共可读的图片

针对公共可读的图片,直接在访问图片的URL请求后添加图片处理参数即可。

如下为获取名称为example.jpg的图片信息URL示例:

https://hw-image-demo.obs.ap-southeast-1.myhuaweicloud.com/example.jpg?x-image-process=image/info