羊蹓狼 发表于 2025-1-2 18:41:47

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

简单描述一下此场景的业务:
由于体系中需要将上传的图片在体系中展示(private私有权限不能直接通过url直接展示),不想通过先下载下来然后以流的形式返回给前台展示这种方法很不友好,毕竟如今前台展示方式都是通过图片URL进行展示,以是就上官网查看API文档,果然找到相识决方案。
解决方案如下:
https://i-blog.csdnimg.cn/direct/b2d0b2357f1743589845f8739c56f880.png#pic_center
阿里云文档链接(截图只是一部分需要仔细阅读并配置):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
   找到解决方案了就要实践,废话不多说,直接上焦点代码:
public static void main(String[] args) throws Throwable {
   
      String endpoint = "";
      String accessKeyId = "";
      String accessKeySecret = "";
      // 填写Bucket名称,例如examplebucket。
      String bucketName = "";
      // 填写Object完整路径,例如exampleobject.png。Object完整路径中不能包含Bucket名称。
      String objectName = "/Image/1725958878172.png";
      // 创建OSSClient实例。
      OSS ossClient = new OSSClientBuilder().build(endpoint,accessKeyId, accessKeySecret);
      try {
   
            // 设置签名URL过期时间,单位为秒,本示例以设置过期时间为1天为例。您可以根据实际业务场景,设置合理的过期时间。
            Date expiration = new Date(new Date().getTime() + 1 * 24 * 3600 * 1000);
            // 生成以GET方法访问的签名URL,在签名URL有效期内访客可以直接通过浏览器访问相关内容。
            GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET);
            req.setExpiration(expiration);
            URL signedUrl = ossClient.generatePresignedUrl(req)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Java 解决阿里云OSS服务器私有权限图片通过URL无法预览的标题