当前位置: 首页 > 编程笔记 >

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

宋俊民
2023-03-14
本文向大家介绍Python 转移文件至云对象存储的方法,包括了Python 转移文件至云对象存储的方法的使用技巧和注意事项,需要的朋友参考一下

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

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

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

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

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

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

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

0.创建存储桶

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

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

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

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


创建后如上图下方列表所示,有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/.

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

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

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

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

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

 类似资料:
  • 1.手机版: 使用方法:打开对话框 -找到需要保存到WPS云盘的文件 -保存到WPS云盘 2.电脑版: 使用方法:打开对话框 -找到需要保存至WPS云盘的文件 -保存到wps云文档

  • 本文向大家介绍用pickle存储Python的原生对象方法,包括了用pickle存储Python的原生对象方法的使用技巧和注意事项,需要的朋友参考一下 在Python中存储数据到文件中时,简单的做法是调用open函数执行文件写入操作,但是这样做的话,当我们要重新读取文件内容时,就会出现类型不匹配的情况,因为读取的都是字符串的形式,所以还需要进行类型转换,这样不简洁。 或者使用eval函数把字符串转

  • 我已经将一些文件从S3转移到GCS,但是这些对象现在归传输服务所有,当我试图使用GSUTIL更新ACL时,它会说我不是所有者。这似乎是因为传输服务创建了它拥有的对象。是否有一种方法来模仿转移服务(或通过它的服务帐户登录),以便将所有权改变给我自己。 这样做时,我会得到以下错误: 请确保您拥有对此资源的所有者角色访问权限

  • 流的工作方式就像存储到BlobStore一样。客户端请求上载URL,BlobStore.create_upload_url(...)创建它,客户端通过多部分POST上载文件,然后服务器重定向到我的GAE应用程序中的上载处理程序。 问题是,虽然我必须选择GCS bucket(它是create_upload_url调用的参数之一),但我不知道如何选择文件名。我想把它分解成文件夹。灵感来自 Google

  • 我已经使用谷歌云控制台将几个文件上传到了谷歌云存储的同一个文件夹中。我现在想把几个文件移动到谷歌云存储中的一个新创建的文件夹中,但我无法通过谷歌云控制台看到如何做到这一点。我通过上的命令提示符指令找到了移动文件的说明。但是,我对命令行界面不满意,并且无法在我的机器上使用。 有没有办法通过谷歌云控制台将谷歌云存储中的文件从一个文件夹移动到另一个文件夹?

  • 简介 Lumen 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包。 Lumen 集成的 Flysystem 提供了简单的接口,可以操作本地端空间、 Amazon S3 、 Rackspace Cloud Storage 。更好的是,它可以非常简单的切换不同保存方式,但仍使用相同的 API 操作! 配置文件 文件系统的配置文件放在 config/file

  • 本文档是阿里云存储服务(OSS)的开发帮助指南,描述了OSS中的基本概念、提供的服务以及可用的API。