OBS JAVA SDK 实践1:如何生成带有图片处理功能的临时访问URL

举报
chongchongly 发表于 2019/05/22 16:45:23 2019/05/22
【摘要】 如果想授予其他用户带有图片处理功能的对象操作权限,可以通过OBS SDK生成带有鉴权信息的URL,同时指定URL的有效期来限制访问时长,之后便可将URL提供给其它用户进行临时访问。


1      背景介绍

如果想授予其他用户带有图片处理功能的对象操作权限,可以通过OBS SDK生成带有鉴权信息的URL,同时指定URL的有效期来限制访问时长,之后便可将URL提供给其它用户进行临时访问。

2      效果展示

这里利用第3章中代码生成的URL链接,将该链接打开后的效果如下(将图片进行了30度旋转),链接有效时间设置的60S

1.png

有效60s过期后,再打开此URL链接时返回访问失败

2.png

3      java代码参考

前提:

需要先下载OBS最新的JAVA SDK,参考官网链接:https://developer.huaweicloud.com/sdk?OBS,并在自己的项目中导入SDK中的JAR包。

 

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

import com.obs.services.ObsClient;

import com.obs.services.ObsConfiguration;

import com.obs.services.model.HttpMethodEnum;

import com.obs.services.model.TemporarySignatureRequest;

import com.obs.services.model.TemporarySignatureResponse;

 

public class temp {

 

          public static void main(String[] args) throws IOException {

                   // TODO Auto-generated method stub

                  

                   String endPoint = "XXX";        // e.g "https://obs.cn-north-1.myhuaweicloud.com"

                   String ak = "XXX";                     // 对象所属的帐户ak

                   String sk = "XXX";                     // 对象所属的帐户sk

                  

                   // 代理信息设置,没有不用设置             

                   ObsConfiguration config = new ObsConfiguration();

                   config.setSocketTimeout(30000);

                config.setConnectionTimeout(10000);

                   config.setEndPoint(endPoint);

                   config.setHttpProxy(proxyAddr, proxyPort, userName, passWord);               // 根据实际情况填写代理信息

                   ObsClient obsClient = new ObsClient(ak, sk, config);

                                       

                   long expireSeconds = 60L;              // 设置URL有效期,60

                   Map<String, Object> map = new HashMap<String, Object>();

                   map.put("x-image-process", "image/resize,w_1000/rotate,30"); // 设置图片处理的效果,此处为宽度调整为1000旋转30

 

                   TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, expireSeconds);

                   request.setBucketName("obs-test-chongchong");             // 需要填写为实际的桶名

                   request.setObjectKey("IMG_20190302_122501.jpg");                    // 需要填写为实际的对象名

                   request.setQueryParams(map);

                   TemporarySignatureResponse response = obsClient.createTemporarySignature(request);

                   System.out.println("Getting object using temporary signature url:");

                   System.out.println("\t" + response.getSignedUrl());                 // 输出临时URL               

          }

}

4      附录链接

OBS JAVA SDK使用,官网参考链接:https://support.huaweicloud.com/sdk-java-devg-obs/zh-cn_topic_0073679956.html

OBS 图片处理使用,官网参考链接:https://support.huaweicloud.com/fg-obs/obs_01_0001.html



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。