Java 解决阿里云OSS服务器私有权限图片通过URL无法预览的标题 ...

打印 上一主题 下一主题

主题 979|帖子 979|积分 2937

简单描述一下此场景的业务:
由于体系中需要将上传的图片在体系中展示(private私有权限不能直接通过url直接展示),不想通过先下载下来然后以流的形式返回给前台展示这种方法很不友好,毕竟如今前台展示方式都是通过图片URL进行展示,以是就上官网查看API文档,果然找到相识决方案。
解决方案如下:

阿里云文档链接(截图只是一部分需要仔细阅读并配置):https://help.aliyun.com/zh/oss/user-guide/how-to-access-a-private-image-object-within-a-specific-period-of-time?spm=a2c4g.11186623.0.i4
   找到解决方案了就要实践,废话不多说,直接上焦点代码:
  1. public static void main(String[] args) throws Throwable {
  2.    
  3.         String endpoint = "";
  4.         String accessKeyId = "";
  5.         String accessKeySecret = "";
  6.         // 填写Bucket名称,例如examplebucket。
  7.         String bucketName = "";
  8.         // 填写Object完整路径,例如exampleobject.png。Object完整路径中不能包含Bucket名称。
  9.         String objectName = "/Image/1725958878172.png";
  10.         // 创建OSSClient实例。
  11.         OSS ossClient = new OSSClientBuilder().build(endpoint,accessKeyId, accessKeySecret);
  12.         try {
  13.    
  14.             // 设置签名URL过期时间,单位为秒,本示例以设置过期时间为1天为例。您可以根据实际业务场景,设置合理的过期时间。
  15.             Date expiration = new Date(new Date().getTime() + 1 * 24 * 3600 * 1000);
  16.             // 生成以GET方法访问的签名URL,在签名URL有效期内访客可以直接通过浏览器访问相关内容。
  17.             GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET);
  18.             req.setExpiration(expiration);
  19.             URL signedUrl = ossClient.generatePresignedUrl(req)
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表