前言
七牛文档配置时间戳防盗链较为复杂,这里专门写一份简单版却五脏俱全的小白文档,旨在交流,同时学习。
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!