前言
七牛文檔配置時間戳防盜鏈較爲複雜,這裏專門寫一份簡單版卻五臟俱全的小白文檔,旨在交流,同時學習。
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!