按文件指纹认证
注意如果是海量文件建议不要使用这种方式认证,随着文件的增加,认证性能有所下降。
1、上传文件(json),此时获得文件上传指纹(md5值)
2、计算token, 计算的方式: token=md5(文件指纹+时间戳)
3、下载文件时,在url中带上token
例子:
1、上传文件
{
"url": "http://127.0.0.1:8080/group1/haystack/5/208,0,58602,.png",
"md5": "2b33b60980b1a37454f008daf7e5d558",
"path": "/group1/haystack/5/208,0,58602,.png",
"domain": "http://127.0.0.1:8080",
"scene": "default",
"size": 58602,
"mtime": 1566524934,
"scenes": "default",
"retmsg": "",
"retcode": 0,
"src": "/group1/haystack/5/208,0,58602,.png"
}
2、计算token(注意计算时是没有中间加号的)
token=md5(2b33b60980b1a37454f008daf7e5d558 + 1566783964)
token=6d70bf9607b692f00d27a3c554bb64d0
3、下载文件
按google认证码认证
如果你对google认证较为熟悉,建议使用这种认证,性能好,安全性也更高。
用户自定义认证
如果你是海量文件,又需要有自己的一些验证逻辑,建议使用自定义认证。
示例代码(python)
安装依赖包
pip install flask requests
业务代码(web服务) app.py
from flask import Flask,request
app = Flask(__name__)
@app.route('/',methods=["GET", "POST"])
def index():
auth_token = request.form.get("auth_token") # check auth_token here
print(auth_token)
if auth_token=='abc':
return 'ok' #success
else:
return 'fail'
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True)
启动服务
python app.py
上传示例
import requests
url = 'http://10.1.5.9:8080/group1/upload'
files = {'file': open('report.xls', 'rb')}
options={'output':'json','path':'','scene':'','auth_token':'abc'} #参阅浏览器上传的选项
r = requests.post(url,data=options, files=files)
print(r.text)
注意:conf/cfg.json "auth_url": "http://127.0.0.1:5000"