

DEFAULT_FILE_STORAGE = "django_cos_storage.TencentCOSStorage"TENCENTCOS_STORAGE = {"BUCKET": "xxx","CONFIG": {"Region": "ap-guangzhou","SecretId": "xxxx","SecretKey": "xxxx",}}
pip freeze,即可查看其模块信息。
from .storage import TencentCOSStoragefrom functools import wrapsdef decorator(cls):instance = None@wraps(cls)def inner(*args,**kwargs):nonlocal instanceif not instance:instance = cls(*args,**kwargs)return instancereturn inner@decoratorclass QFStorage:def __init__(self):passself.storage =TencentCOSStorage()self.bucket =self.storage.bucketself.client =self.storage.client#上传对象def upload_file(self, Key, LocalFilePath, PartSize=1, MAXThread=5, EnableMD5=False):try:response =self.client.upload_file(Bucket=self.bucket,Key=Key,LocalFilePath=LocalFilePath,PartSize=PartSize,MAXThread=MAXThread,EnableMD5=EnableMD5)return responseexcept Exception as e:print('上传对象失败,error:',e)return None

from django.shortcuts import render,redirectfrom django.http import HttpResponsefrom django_cos_storage.COSStorage import QFStoragefrom django.conf import settings#上传对象def upload_file_view(request):response = QFStorage().upload_file(Key='1.png',LocalFilePath=settings.BASE_DIR / 'cessu/1.png')if response:return HttpResponse('上传文件成功!')return HttpResponse('上传文件失败')
cessu/1.png 表示要上传的本地文件1.png位于项目目录下的 cessu 文件夹中 。上传成功后,您可以在 COS 存储桶的 cessu 文件夹中找到图片1.png。
from django.contrib import adminfrom django.urls import pathfrom app_cos.views import *urlpatterns = [path('admin/', admin.site.urls),path('upload_file/', upload_file_view),]
python manage.py migrate并执行。python manage.py createsuperuser,按照提示输入账号密码即可。python manage.py createsuperuser时提示缺少 pkg_resources,请执行安装命令pip install setuptools进行解决。
python .\\manage.py runserver 运行。
http://127.0.0.1:8000/admin/,并输入刚才设置的账号密码即可完成登录。

python manage.py makemigrationspython manage.py migrate
python .\\manage.py runserver 运行,然后打开 http://127.0.0.1:8000/admin/ 即可。http://127.0.0.1:8000/upload_file,完成上传文件操作。当提示如下图所示,则表示上传成功。
文档反馈