Django项目,上传图片到七牛云,阿里云OSS教程
Django项目,上传图片到七牛云简略步骤为:1.注册登陆七牛云,2.创建存储空间,https://portal.qiniu.com/home创建空间之后会自动生成一个测试域名,官方域名有效时间是一个月,如果自己有域名的话可以自定义域名,域名过期就不能通过连接访问了3.修改python代码1.指定存储类在Django项目的settings文件中,指定存储类,字符串中代表自定义的路径,我的放在项目目
·
Django项目,上传图片到七牛云
简略步骤为:
1.注册登陆七牛云,
上传项目到阿里云OSS:链接
或者到我的主页查看
2.创建存储空间,https://portal.qiniu.com/home
创建空间之后会自动生成一个测试域名,官方域名有效时间是一个月,如果自己有域名的话可以自定义域名,域名过期就不能通过连接访问了

3.修改python代码
修改python代码
1. 指定存储类
在Django项目的settings文件中,指定存储类,字符串中代表自定义的路径,我的放在项目目录下的utils/storage文件中
# 指定存储类
# 指定自定义的Django文件存储类,
DEFAULT_FILE_STORAGE = 'utils.storage.MyStorage'
#七牛云空间CDN 测试域名
QN_BASE_URL ='http://qv58500gn.hb-bkt.clouddn.com/'

查看测试域名

2. 存储类代码
前端获取图片可以通过,字段名.url的形式获取图片地址,eg:user.avatar.url
#/utils.storage文件中
from django.core.files.storage import Storage
from django.conf import settings
class MyStorage(Storage):
"""自定义文件存储类"""
def _open(self, name, mode='rb'):
pass
def _save(self, name, content, max_length=None):
pass
def url(self, name):
# name 就是图片的名字,
return settings.QN_BASE_URL + name
3. 图片上传七牛云代码
import logging
from qiniu import Auth, put_data
# 需要填写你的 Access Key 和 Secret Key
access_key = 'BGhjPDNlnsGVF_VYhhTqL3epr3VNRnqlwxxxxxx'
secret_key = 'Z2tfw_Xey8N9GTHfSp7TE8GaNckxyQ0Qxxxxxxx'
# 要上传的空间
bucket_name = 'ihomeptsxxxx'
# data 接收的是图片二进制
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())
恭喜你配置完成!!!
欢迎关注wx公众hao:软件集合
更多推荐

所有评论(0)