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  # 回调体里的信息 图片名称 和 图片大小。
    
posted @   巫小诗  阅读(216)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示