django 和 七牛云 交互
-
七牛开发文档(https://developer.qiniu.com/kodo/sdk/1242/python)
-
安装
pip install qiniu
-
初始化
# access_key 个人中心的 ak # secret_key 个人中心的 sk from qiniu import Auth q = Auth(access_key, secret_key)
-
上传流程
from qiniu import Auth, put_file, etag import qiniu.config #需要填写你的 Access Key 和 Secret Key access_key = 'Access_Key' secret_key = 'Secret_Key' #构建鉴权对象 q = Auth(access_key, secret_key) #要上传的空间 bucket_name = 'Bucket_Name' #上传后保存的文件名,如果不写的话,需要填写None key = 'my-python-logo.png' #生成上传 Token,可以指定过期时间等 token = q.upload_token(bucket_name, key, 3600) #要上传文件的本地路径,需要指定资源的绝对路径,如果资源名称相同,默认为第一次上传的资源。 localfile = './sync/bbb.jpg' # 上传资源 ret, info = put_file(token, key, localfile) # 上传成功,获取的状态码为200,没有错误信息 info.status_code # 上传失败,获取的错误信息, info.error
-
设置回调函数
from qiniu import Auth, put_file, etag import qiniu.config #需要填写你的 Access Key 和 Secret Key access_key = 'Access_Key' secret_key = 'Secret_Key' #构建鉴权对象 q = Auth(access_key, secret_key) #要上传的空间 bucket_name = 'Bucket_Name' #上传后保存的文件名,如果不写的话,需要填写None key = 'my-python-logo.png' #上传文件到七牛后, 七牛将文件名和文件大小回调给业务服务器。 policy={ 'callbackUrl':'http://your.domain.com/callback.php', 'callbackBody':'filename=$(fname) & filesize=$(fsize)' } #生成上传 Token,可以指定过期时间等 token = q.upload_token(bucket_name, key, 3600,policy) #要上传文件的本地路径,需要指定资源的绝对路径,如果资源名称相同,默认为第一次上传的资源。 localfile = './sync/bbb.jpg' # 上传资源 ret, info = put_file(token, key, localfile) # 上传成功,获取的状态码为200,没有错误信息 info.status_code # 上传失败,获取的错误信息, info.error
-
回调文件
# callback.php <?php $data = $_REQUEST; file_put_contents('a.txt',$data);
-
根据服务器地址,可以看回调数据
success.png 2738 # 回调体里的信息 图片名称 和 图片大小。