如何通过URL访问图片处理服务?
访问非公共可读的图片
针对非公共可读的图片,需要在计算签名时加上图片处理参数,最终通过生成带签名的临时URL来访问。
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.cn-north-4.myhuaweicloud.com"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY。 // 您可以登录访问管理控制台获取访问密钥AK/SK。获取方式请参见https://support.huaweicloud.com/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://e-share.obs.cn-north-1.myhuaweicloud.com/example.jpg?x-image-process=image/info