1. 程式人生 > >七牛:一篇玩轉七牛CDN時間戳防盜鏈———python版

七牛:一篇玩轉七牛CDN時間戳防盜鏈———python版

文章目錄

前言

七牛文件配置時間戳防盜鏈較為複雜,這裡專門寫一份簡單版卻五臟俱全的小白文件,旨在交流,同時學習。
Github地址:https://github.com/Haley123/qiniu/blob/master/time_chain.py

一、七牛portal配置

在這裡插入圖片描述

在這裡插入圖片描述

直接使用系統生成的主key和備key。
但是填寫好後,有個問題,檢查url沒有,無法確認!

不急,我們繼續下一步。

二、使用python生成時間戳防盜鏈url

七牛API已經封裝好了相關的API介面,所以我們可以很方便的使用API介面去實現時間戳的演算法。
首先,安裝好七牛的官網庫。
執行以下命令:

pip install qiniu

這裡我們需要使用qiniu庫的兩個方法,Auth和 create_timestamp_anti_leech_url,其中Auth是七牛物件儲存生成各種安全憑證所用(上傳,下載,管理憑證),而create_timestamp_anti_leech_url就是我們用來生成時間戳防盜鏈url的方法了,傳入所需的引數,會返回一個經過時間戳加密的url。
如下:

# -*- coding: utf-8 -*-
from qiniu import Auth,  create_timestamp_anti_leech_url


# AK,SK,初始化
access_key = 'your_AK'
secret_key = 'your_SK'
q = Auth(access_key, secret_key)


# 配置時間戳防盜鏈的引數
host = '七牛空間繫結域名'
file_name = '需要加密的檔名'
encrypt_key = 'CDN後臺生成key,主key和備key皆可'
deadline = 3600  # 連結有效期時間戳(以秒為單位)
query_string = ''
try:
    '''
        create_timestamp_anti_leech_url(host, file_name, query_string, encrypt_key, deadline)
          Args:
            host:              帶訪問協議的域名
            file_name:         原始檔名,不需要urlencode
            query_string:      查詢引數,不需要urlencode
            encrypt_key:       時間戳防盜鏈金鑰
            deadline:          連結有效期時間戳(以秒為單位)
    
        Returns:
            帶時間戳防盜鏈鑑權訪問連結
    '''
    url_time = create_timestamp_anti_leech_url(host, file_name, query_string, encrypt_key, deadline)
    print('http://'+url_time)
except:
    print('生成防盜鏈url錯誤')

執行結果如下:

http:// domain/key?sign=c588f001eba796758a603e1296683a4e&t=e10

注:

  • domain是繫結域名
  • key是空間檔名

三、完成

將使用程式碼生成的url直接寫入 “檢查url” 中即可,這個時候就可以點選確定了。
在這裡插入圖片描述

done!