Django-DRF实现上传文件到阿里云OSS

上传网页demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="http://127.0.0.1:8000/api/v1/loadfile/" method="POST" enctype="multipart/form-data">
        <input type="file" name="file" id="">
        <input type="submit" value="上传">
    </form>
</body>
</html>

后端网页用网络流

import oss2

auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')

file = request.FILES.get('file')  # 上传的文件
name = request.FILES.get('file').name  # 上传的文件名称
srcname = 'file/'+name  # 保存在项目的file根目录 自己设置
bucket.put_object(srcname, file)    # 将file以网络流保存
jpg_url = bucket.sign_url('GET', name, 60) #获取项目里名为name的文件,有效时间60s
print(jpg_url)

本地上传

import oss2


auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')


result = bucket.put_object_from_file('userimg/yanggeol.jpg', 'yanggeol.jpg')  
# 括号内 左边是上传后的文件名,右边是当前系统的文件地址
print('http status: {0}'.format(result.status))  # 打印上传的返回值 200成功
url = bucket.sign_url('GET', name, 60)  # 阿里返回一个关于name地址 60是链接60秒有效
print(url)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值