如果是公有空間,想要實現加密 url 訪問,可以使用七牛的時間戳防盜鏈功能。
實現效果
實現下圖效果中,上半部分圖為常規訪問圖片報錯403;下半部分圖為訪問經過時間戳算法生成的 url 實現正常訪問。
手動操作步驟示例
信息准備
- 資源文件,http://i.iamlj.com/18-10-24/98594789.jpg
- Path,/18-10-24/98594789.jpg (
注意開頭有/
) - Key,bfa860b8caa9c08aa7abccb888bb9dbaf8980aa8,可以使用 key 生成器生成
- T,5c1379fb 過期時間戳
- 獲取當前時間戳 date +%s
- 10進制轉16進制 http://tool.oschina.net/hexconvert/
- 當前時間 1544776683 + 3600 -> 1544780283 -> 10轉16進制 -> 5c1379fb
拼接 sign 和 url
- 通過 sign=md5(key+path+t)
- key+path+t = bfa860b8caa9c08aa7abccb888bb9dbaf8980aa8/18-10-24/98594789.jpg5c1379fb
- sign = md5(bfa860b8caa9c08aa7abccb888bb9dbaf8980aa8/18-10-24/98594789.jpg5c1379fb) = 03742e3c1fe9c82dff30aa7cb2f649aa
- url = file_url?sign=<sign>&t=<16進制時間戳> = http://i.iamlj.com/18-10-24/98594789.jpg?sign=03742e3c1fe9c82dff30aa7cb2f649aa&t=5c1379fb
在時間戳防盜鏈頁面,填寫信息
- 主 Key 0e88b8889f9ab9b9c3b9418b339a159a4f9b5f9a
- 副 Key 隨便寫
- url http://i.iamlj.com/18-10-24/98594789.jpg?sign=03742e3c1fe9c82dff30aa7cb2f649aa&t=5c1379fb
填寫圖
填寫 url 處,不報錯則表示生成 url 的格式是正確的,則「確定」鍵生效,可以按下。
python 實現
代碼文件見 這里
運行效果圖