将文件上传到七牛云

下载七牛云SDK

pip install qiniu

配置上传密钥,上传空间
定义上传文件/二进制文件的函数

import qiniu


AUTH = qiniu.Auth(
    '2tnO1EafA4nxxccvdMaTERpSrSXpFmvccPCuBE4r',
    '-KreVA7Wi0Gsd6RfCgWEu76rgzcikr_q96y_-UAY'
)
BUCKET_NAME = 'yaoyao123'


# 普通文件上传函数(大文件)
def upload_file_to_qiniu(key, filepath):
    token = AUTH.upload_token(BUCKET_NAME, key)
    return qiniu.put_file(token, key, filepath)

# 二进制文件上传函数(放入内存中的小文件<2.5M)
def upload_stream_to_qiniu(key, stream, size):
    token = AUTH.upload_token(BUCKET_NAME, key)
    return qiniu.put_stream(token, key, stream, None, size)

调用上传文件到七牛云的函数

from polls.utils import upload_stream_to_qiniu


@csrf_exempt
def upload(request):
    photo = request.FILES.get('photo')
    # 通过os.path.splitext将文件拆分成文件名和拓展名
    _, ext = os.path.splitext(photo.name)
    filename = f'{uuid.uuid1().hex}{ext}'
    # 放到线程池中运行,还没等到程序运行,变量已被释放。这里将文件拷贝避免这种问题。
    POOL.submit(upload_stream_to_qiniu, filename, copy.copy(photo.file), photo.size)
    return redirect('/static/html/upload.html')
当你想把本地文件上传七牛云存储,可以按照以下步骤操作: 1. **注册并创建账号**:首先,访问官网(https://www.qiniu.com)注册一个账户,并创建一个存储空间。 2. **安装SDK**:提供各种语言的官方 SDK,如 Python 的 qiniupy、Node.js 的 NPM 包等。选择适合你项目的语言版本下载并安装。 3. **初始化客户端**:通过 SDK 初始化一个 Qiniu 存储客户端,通常需要传入你的 Access Key 和 Secret Key 来授权访问。 4. **读取本地文件**:使用程序读取本地文件路径和文件名,例如在 Python 中可以使用 `open()` 函数打开文件。 5. **上传文件**:调用 SDK 提供的上传方法,比如在 Python 中的 `put_file` 或 `upload` 函数,传入文件流和目标的存储 URL 或 bucket 名称。 6. **设置元数据**:如果你希望给文件添加描述或者其他属性,可以在上传时指定相应的元信息。 7. **处理上传结果**:上传成功后,会返回一个包含文件 URL 或其他信息的对象,可以根据这个 URL 访问在线文件。 示例代码(Python 使用 qiniupy): ```python from qiniu import Auth, put_file # 初始化账号密钥 access_key = 'your_access_key' secret_key = 'your_secret_key' bucket_name = 'your_bucket_name' # 创建鉴权对象 q = Auth(access_key, secret_key) # 生成上传 token token = q.upload_token(bucket_name) # 文件路径 local_file_path = '/path/to/local/file.jpg' # 上传文件 key = 'file.jpg' # 对应云端文件名 ret, info = put_file(token, key, local_file_path) print('上传完成,URL:', ret['url']) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值