周晓楠

导航

 

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  # 回调体里的信息 图片名称 和 图片大小。
posted on 2020-10-28 15:09  周晓楠  阅读(105)  评论(0编辑  收藏  举报