IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django——django上传文件至腾讯云、阿里云 -> 正文阅读

[Python知识库]Django——django上传文件至腾讯云、阿里云

一、准备工作

  1. 首先大家要购买一个腾讯云或者阿里云的轻量级服务器,由于我的服务器来自腾讯云,接下来的演示就根据腾讯云的步骤开始。阿里云步骤类似。
  2. 登录你的腾讯云账号,在控制台中找到对象储存服务,进去后找到对应存储桶列表中新建存储桶。
    在这里插入图片描述
  3. 然后我们要生成密钥,进入控制台搜索访问管理,点击访问密钥下面的API密钥管理,新建一个密钥。
    在这里插入图片描述

二、使用

环境依赖
对象存储的 XML Python SDK 目前可以支持 Python 2.7 以及 Python 3.4 及以上。

说明:
关于文章中出现的 SecretId、SecretKey、Bucket、Region 等名称的含义和获取方式请参见 COS 术语信息。

安装 SDK
安装 SDK 有三种安装方式:pip 安装、手动安装和离线安装。

使用 pip 安装(推荐)

 pip install -U cos-python-sdk-v5

手动安装
从 XML Python SDK 下载源码,通过 setup 手动安装,执行以下命令:

python setup.py install

离线安装

在有外网的机器下运行如下命令

mkdir cos-python-sdk-packages
pip download cos-python-sdk-v5 -d cos-python-sdk-packages
tar -czvf cos-python-sdk-packages.tar.gz cos-python-sdk-packages

将安装包拷贝到没有外网的机器后运行如下命令
请确保两台机器的 python 版本保持一致,否则会出现安装失败的情况

tar -xzvf cos-python-sdk-packages.tar.gz
pip install cos-python-sdk-v5 --no-index -f cos-python-sdk-packages

开始使用
下面为您介绍如何使用 COS Python SDK 完成一个基础操作,例如初始化客户端、创建存储桶、查询存储桶列表、上传对象、查询对象列表、下载对象和删除对象。

腾讯云配置文件总览

from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
import sys
import logging

# 正常情况日志级别使用INFO,需要定位时可以修改为DEBUG,此时SDK会打印和服务端的通信信息
logging.basicConfig(level=logging.INFO, stream=sys.stdout)

# 1. 设置用户属性, 包括 secret_id, secret_key, region等。Appid 已在CosConfig中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成
secret_id = ''  # 替换为用户的 SecretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
secret_key = ''  # 替换为用户的 SecretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
region = 'ap-beijing'  # 替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
# COS支持的所有region列表参见https://www.qcloud.com/document/product/436/6224
token = None  # 如果使用永久密钥不需要填入token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见https://cloud.tencent.com/document/product/436/14048
scheme = 'https'  # 指定使用 http/https 协议来访问 COS,默认为 https,可不填

config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)

# 2. 获取客户端对象
client = CosS3Client(config)
# 参照下文的描述。或者参照 Demo 程序,详见 https://github.com/tencentyun/cos-python-sdk-v5/blob/master/qcloud_cos/demo.py

"""上传文件至腾讯云接口"""

# 自定义
def upload(localFilePath, title):
    response = client.put_object(
        Bucket='',# 替换为用户创建的存储桶名称
        Body=localFilePath,# 要存储的文件的本地地址
        Key='picture.jpg'+title,# 自定义上传文件的名称
        EnableMD5=False,
    )

1.初始化

下面介绍几种初始化 Python SDK Client 的方式,您可以根据具体场景选择其中一种。
通过 COS 默认域名初始化(默认方式)
通过 COS 默认域名初始化 Client,需要传入region名称,SDK会以{bucket-appid}.cos.{region}.myqcloud.com的域名形式访问COS。

from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
import sys
import logging
正常情况日志级别使用INFO,需要定位时可以修改为DEBUG,此时SDK会打印和服务端的通信信息
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
1. 设置用户属性, 包括 secret_id, secret_key, region等。Appid 已在CosConfig中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成
secret_id = 'SecretId'     # 替换为用户的 SecretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
secret_key = 'SecretKey'   # 替换为用户的 SecretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
region = 'ap-beijing'      # 替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
                           # COS支持的所有region列表参见https://www.qcloud.com/document/product/436/6224
token = None               # 如果使用永久密钥不需要填入token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见https://cloud.tencent.com/document/product/436/14048
scheme = 'https'           # 指定使用 http/https 协议来访问 COS,默认为 https,可不填

config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)

2. 获取客户端对象

client = CosS3Client(config)#参照下文的描述。或者参照 Demo 程序,详见 [https://github.com/tencentyun/cos-python-sdk-v5/blob/master/qcloud_cos/demo.py](https://github.com/tencentyun/cos-python-sdk-v5/blob/master/qcloud_cos/demo.py)

注意:
正常情况下一个 region 只需要生成一个 CosS3Client 实例,然后循环上传或下载对象,不能每次访问都生成 CosS3Client 实例,否则 python 进程会占用过多的连接和线程。

说明:
关于临时密钥如何生成和使用,请参见 临时密钥生成及使用指引。

3.接口的使用

"""上传文件至腾讯云接口"""


def upload(localFilePath, title):
    response = client.put_object(
        Bucket='interview-1308216014',
        Body=localFilePath,
        Key='picture.jpg'+title,
        EnableMD5=False,
    )

4.其他部分的操作

其他部分的操作在此不再一一赘述,大家可以自行操作。如url,view,制作前端文件上传的页面等。
在这里插入图片描述

以下是一个简易的视图函数,要在其中使用前面文件中定义的upload()函数

  def post(self, request):
        try:
            content = request.POST['content']
            title = request.POST['title']
            time = request.POST['time']
            photo = request.FILES.get('file')
            print(content)
            announcement = announcementSerializer(
                data={'content': content, 'title': title, 'time': time, 'photo': photo})
            if announcement.is_valid():
                announcement.save()
                upload.upload(photo, title)
                print('图片上传成功')
                return JsonResponse({'msg': '公告发布成功'}, status=200)
            else:
                return JsonResponse({'msg': '发布失败,您的输入不合理'}, status=401)
        except:
            return JsonResponse({'msg': '发布失败,您的输入不合理'}, status=400)

这里只是上传功能的实现,如果需要实现其他功能,大家可以去腾讯云官方SDK文档中查看。官方SDK地址

三、测试

所有准备就绪。我们在表单中上传一张图片
我们在腾讯云控制后台中的存储桶中可以看到,我们有.jpg
的图片已经上传成功。
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-05 12:00:09  更:2021-12-05 12:01:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:33:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码