• 腾讯云生成临时访问链接


    有时候你的文件(文档、图片)可能不想让拿到云存储的url就能让用户访问,新建bucket的时候就要设置为私有读写。

    权限类别文档地址

    此时腾讯云提供了一个【预签名URL】功能,就是通过java sdk(不用http调用腾讯云),算出来一个带有时效性的临时访问链接。

    文档地址

    先上传一个文件做实验:

     示例代码:

    // 初始化永久密钥信息
            String secretId = "AKIDhBOO8dyHxxxxxxVmnXgjCP";
            String secretKey = "5yau0qVMyKxxxxxxxxqlR";
            COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
            Region region = new Region("ap-nanjing");
            ClientConfig clientConfig = new ClientConfig(region);
            // 如果要生成一个使用 https 协议的 URL,则设置此行,推荐设置。
            // clientConfig.setHttpProtocol(HttpProtocol.https);
            // 生成 cos 客户端。
            COSClient cosClient = new COSClient(cred, clientConfig);
            String bucketName = "nb-1301887372";
            // 此处的key为对象键,对象键是对象在存储桶内的唯一标识
    
            GeneratePresignedUrlRequest req =
                    new GeneratePresignedUrlRequest(bucketName, key, HttpMethodName.GET);
            // 设置签名过期时间(可选), 若未进行设置, 则默认使用 ClientConfig 中的签名过期时间(1小时)
            // 可以设置任意一个未来的时间,推荐是设置 10 分钟到 3 天的过期时间
            // 这里设置签名在半个小时后过期
            Date expirationDate = new Date(System.currentTimeMillis() + 100* 24 * 60 * 60L * 1000L);
            req.setExpiration(expirationDate);
    
            // 填写本次请求的参数
            //req.addRequestParameter("param1", "value1");
            // 填写本次请求的头部。Host 头部会自动补全,不需要填写
            //req.putCustomRequestHeader("header1", "value1");
    
            URL url = cosClient.generatePresignedUrl(req);
    
            System.out.println("获取到临时访问链接======>>>> "+url.toString());
            cosClient.shutdown();

    生成的临时访问链接:

     https://nb-1301887372.cos.ap-nanjing.myqcloud.com/XXOO.pdf?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDhBOO8dyHPGtFMDpD4fz5uBDyVmnXgjCP%26q-sign-time%3D1632379402%3B1641019402%26q-key-time%3D1632379402%3B1641019402%26q-header-list%3Dhost%26q-url-param-list%3D%26q-signature%3D7e6cda6ae43c7abda29d5b26c7a5485d2ab97663

    这个链接的特点是  https://nb-1301887372.cos.ap-nanjing.myqcloud.com/XXOO.pdf?sign= 之前,不urlencode,之后的参数urlencode了。

    预览:

     

  • 相关阅读:
    面向对象三大特征------多态
    接口的概念
    面向对象(抽象类)
    面向对象三大特征------继承
    面向对象三大特征------封装
    成员变量和局部变量的区别
    20180822 ajax post 方式请求
    20180815 权限
    20180815 视图
    20180814 夜晚小目标
  • 原文地址:https://www.cnblogs.com/lihaoyang/p/15324851.html
Copyright © 2020-2023  润新知