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

简单描述一下此场景的业务:
由于系统中需要将上传的图片在系统中展示(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

找到解决方案了就要实践,废话不多说,直接上核心代码:

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)
上一篇:数组扁平化


下一篇:【MATLAB实例】批量提取.csv数据并根据变量名筛选