zoukankan      html  css  js  c++  java
  • 腾讯云生成临时访问链接

    有时候你的文件(文档、图片)可能不想让拿到云存储的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了。

    预览:

     

  • 相关阅读:
    FastApi 进阶
    flask为多个接口添加同一个拦截器的方法
    记一次flask上传文件返回200前端却504的问题
    Python在项目外更改项目内引用
    go mod 拉取私有仓库
    go跳出多层循环的几种方式
    Zap简单使用
    记一次Goroutine与wg导致的问题
    go判断字符串是否是IP地址
    SpringBoot的启动流程
  • 原文地址:https://www.cnblogs.com/lihaoyang/p/15324851.html
Copyright © 2011-2022 走看看