Python 转移文件至云对象存储的方法


Posted in Python onFebruary 07, 2021

对象存储(Cloud Object Storage,COS)是一种存储海量文件的分布式存储服务,具有高扩展性、低成本、可靠安全等优点。

对象存储有什么用呢?对于站长而言,比如Python实用宝典网站的服务器位于腾讯云香港,大陆访问速度会比较慢,这时候我可以将图片等静态资源转移到对象存储上,以提高用户的访问速度。

实际上,这两天我就对Python实用宝典做了这样的调整,搭配上懒加载,效果极佳,用户访问并渲染图片的过程所耗费的时间大大减少,大家可以访问Python实用宝典网体验一下:
https://pythondict.com

那么对于非站长的普通用户有什么用?相比于其他什么百度网盘之类的产品,COS最重要的优势是:

  • 上传下载不限速,数据中心多地任选
  • 能实现文件分享功能,同样不限速
  • 能自动创建文件历史备份,方便回溯办公文件
  • 支持各平台用客户端管理文件,电脑端甚至还可直接将网盘挂载为一个虚拟磁盘
  • 价格按用量计费(存储量、下行流量),免费额度用完后,你可能一个月大约也才需要花费 6 元

像腾讯云这样的大云服务商,每个月都给用户提供了50G的免费容量:

Python 转移文件至云对象存储的方法

非常好,下面大家可以跟着我一起尝试使用一下,或许你会爱上这个产品。

0.创建存储桶

进入腾讯云的对象存储页面:

https://console.cloud.tencent.com/cos5/bucket#

Python 转移文件至云对象存储的方法

选择创建存储桶,可以随意命名你的数据桶,地域可以选择离你最近的。注意访问权限这一项,如果你希望你的朋友也能下载数据桶内的文件,一定要选择公有读私有写。

1.安装

接下来说说怎么用Python将静态资源转移到腾讯云COS上。

Coscmd是腾讯云官方基于Python推出的上传工具,使用起来非常方便。

使用 pip 安装 coscmd:

pip install coscmd

如果直接安装失败了,可以尝试源码安装:

git clone https://github.com/tencentyun/coscmd.git
cd coscmd
python setup.py install

可以使用 coscmd -v 查看版本号

# coscmd -v
coscmd 1.8.6.16

2.配置

安装完成之后我们还需要一些参数配置,配置密钥、存储桶地域等。我们迁移数据时仅仅只需要配置一些简单的参数即可:

coscmd config -a SecretID -s SecretKey -b BucketName-APPID -r region

BucketName-APPID 是存储桶名称,region 为存储桶所在地域,SecretID 和 SecretKey 可以在控制台获取,如果没有的话直接创建一个:
https://console.cloud.tencent.com/cam/capi

Python 转移文件至云对象存储的方法

创建后如上图下方列表所示,有APPID、SecretID 和 SecretKey,那么命令就如:

coscmd config -a AChT4ThiXAbpBDEFGhT4ThiXAbp**** -s WE54wreefvds3462refgwewe**** -b examplebucket-1250000000 -r ap-beijing

3. 迁移

下面以迁移本地附件到 COS 为例,演示一下 COSCMD 的使用

COSCMD 可以上传文件也可以直接上传文件夹,命令为:

#上传文件
coscmd upload 
 
#上传文件夹
coscmd upload -r

这样我们就可以使用如下命令将媒体库的文件上传到 COS 中:

# home/ 指将媒体库里的文件存放到COS的home文件夹中
coscmd upload -r 你的媒体库文件夹地址 存放到COS的具体位置如home/
 
#同步上传,跳过 md5 相同的文件
coscmd upload -rs 你的媒体库文件夹地址 home/
 
#忽略 .mp3 和 .gif 的后缀文件
coscmd upload -rs 你的媒体库文件夹地址 home/ --ignore *.mp3,*.gif

我们需要将媒体库的图片上传到 COS 中,存放的路径则因使用而异。

如果是网站的话,比如WordPress 的媒体库存储路径建议使用 wp-content/uploads/,如果你是为了个人使用,可以上传到任意位置,建议使用:home/.

Python 转移文件至云对象存储的方法

上传完成后如上图所示,你可以在文件列表中找到你刚上传的这些媒体文件。

当然,COS也支持手动上传文件:

Python 转移文件至云对象存储的方法

如果你按照我的步骤创建了一个公有读私有写的数据桶,那么上传的这些资源也支持分享文件下载地址给别人:

Python 转移文件至云对象存储的方法

上图中显示的对象地址,就可以拿来分享给你任何朋友下载,不限速!不限速!不限速!怎么样,是不是超香?

到此这篇关于Python 转移文件至云对象存储的文章就介绍到这了,更多相关Python 云对象存储内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
Mar 30 Python
python利用MethodType绑定方法到类示例代码
Aug 27 Python
Python实现求解括号匹配问题的方法
Apr 17 Python
python print 按逗号或空格分隔的方法
May 02 Python
Python中的heapq模块源码详析
Jan 08 Python
python DataFrame 取差集实例
Jan 30 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
Dec 31 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
Python使用Paramiko控制liunx第三方库
May 20 Python
python 元组的使用方法
Jun 09 Python
用python获取txt文件中关键字的数量
Dec 24 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 #Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 #Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 #Python
Pandas数据分析的一些常用小技巧
Feb 07 #Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
Feb 07 #Python
python实现经典排序算法的示例代码
Feb 07 #Python
Python自动化测试基础必备知识点总结
Feb 07 #Python
You might like
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
用JS实现的一个include函数
2007/07/21 Javascript
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
python使用str & repr转换字符串
2016/10/13 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
一些关于MySql加速和优化的面试题
2014/01/30 面试题
医院护士的求职信
2014/01/03 职场文书
小学生获奖感言范文
2014/02/02 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python
vue3获取当前路由地址
2022/02/18 Vue.js
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android