最近在做的后台涉及到保存多媒体文件,音频图片视频等数据,使用的是华为的OBS,保存完成之后会返回一个地址给我们,地址栏最后的一层就是ObjectKey,但是会存在问题,就是如果这个连接被他人盗取去之后拿去使用,那么这个过程中产生的流量等费用就是算在咱们头上,所以必须加以限制.
通过百度查询看到了一位博主的文章,觉得很好用,就直接把核心的代码拿过来的,原博主的博文地址:https://blog.csdn.net/weigang200820chengdu/article/details/114084513
下面直接上代码:
TemporarySignatureRequest request = new TemporarySignatureRequest();
request.setBucketName("bucketName");
request.setObjectKey("objectKey");
request.setRequestDate(new Date());
// 1分钟后链接失效
request.setExpires(60);
ObsClient obsClient = obsBiz.getObsClient();
// 通过临时授权,直接访问链接下载
TemporarySignatureResponse signature = obsClient.createTemporarySignature(request);
log.info("download signedUrl-> {}", signature.getSignedUrl());