騰訊雲生成臨時訪問鏈接


有時候你的文件(文檔、圖片)可能不想讓拿到雲存儲的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了。

預覽:

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM