七牛云存储

  • 对于实际项目的作用:
    • 用于在实际项目中存储媒体(图像、音频、视频)文件
    • 节省自己服务器空间,节约宽带,提升媒体文件访问的稳定性
    • 不需要人力物力对重复数据、冗余数据进行清理及判断
  • 官网:https://www.qiniu.com/
  • SDK地址:https://developer.qiniu.com/sdk#official-sdk
  • 注册,登录,实名认证
  • 创建存储空间

创建存储空间

  • 拷贝外链默认域名到项目中

外链默认域名

  • 拷贝 access_key 和 secret_key 到项目中

AKSK

封装上传图片工具类

  • 安装工具包
pip install qiniu
  • info/utils 目录下创建 image_storage.py 文件
  • image_storage示例代码:
# -*- coding: utf-8 -*-

import logging

from qiniu import Auth, put_data

# 需要填写你的 Access Key 和 Secret Key
access_key = 'yV4GmNBLOgQK-1Sn3o4jktGLFdFSrlywR2C-hvsW'
secret_key = 'bixMURPL6tHjrb8QKVg2tm7n9k8C7vaOeQ4MEoeW'

# 要上传的空间
bucket_name = 'ihome'


def storage(data):
    """七牛云存储上传文件接口"""
    if not data:
        return None
    try:
        # 构建鉴权对象
        q = Auth(access_key, secret_key)

        # 生成上传 Token,可以指定过期时间等
        token = q.upload_token(bucket_name)

        # 上传文件
        ret, info = put_data(token, None, data)

    except Exception as e:
        logging.error(e)
        raise e

    if info and info.status_code != 200:
        raise Exception("上传文件到七牛失败")

    # 返回七牛中保存的图片名,这个图片名也是访问七牛获取图片的路径
    return ret["key"]


if __name__ == '__main__':
    file_name = input("输入上传的文件")
    with open(file_name, "rb") as f:
        storage(f.read())

七牛是通过 pip 安装的