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 相关文章推荐
python开发之for循环操作实例详解
Nov 12 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
Python简单网络编程示例【客户端与服务端】
May 26 Python
简单的python协同过滤程序实例代码
Jan 31 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
Python使用crontab模块设置和清除定时任务操作详解
Apr 09 Python
python操作日志的封装方法(两种方法)
May 23 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
python类中super() 的使用解析
Dec 19 Python
python编程进阶之异常处理用法实例分析
Feb 21 Python
Python ATM功能实现代码实例
Mar 19 Python
Pytorch distributed 多卡并行载入模型操作
Jun 05 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
拼音码表的生成
2006/10/09 PHP
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
jquery插件开发注意事项小结
2013/06/04 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
js设置默认时间跨度过程详解
2019/07/17 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
python交互式图形编程实例(二)
2017/11/17 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
C# .NET面试题
2015/11/28 面试题
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
经理秘书找工作求职信
2013/12/19 职场文书
车队司机自我鉴定
2014/03/02 职场文书
三万活动总结
2014/04/28 职场文书
2016年父亲节寄语
2015/12/04 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
PHP遍历数组的6种方式总结
2021/11/17 PHP