django 和 七牛云 交互

Posted wuxiaoshi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 和 七牛云 交互相关的知识,希望对你有一定的参考价值。

django 和 七牛云 交互

  • 七牛开发文档

  • 安装

    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  # 回调体里的信息 图片名称 和 图片大小。

以上是关于django 和 七牛云 交互的主要内容,如果未能解决你的问题,请参考以下文章

django之集成七牛云对象存储

在django中使用七牛云

我为啥最终选择了七牛云存储

iOS 七牛云上传并获取图片----客户端

如何自动上传文件到七牛云

jsp使用七牛云API和webuploader上传多组图片