网站建设算什么资产,网站底部版权信息模板,古镇网站建设哪家好,站长之家域名查询大家好#xff0c;我是水滴~~
本文将介绍如何使用Python编程语言将OSS#xff08;对象存储服务#xff09;中的文件免费下载到本地计算机。我们先进行项目分析和准备工作#xff0c;为后续的编码及实施提供基础。 《Python入门核心技术》专栏总目录・点这里 文章目录 1. 前… 大家好我是水滴~~
本文将介绍如何使用Python编程语言将OSS对象存储服务中的文件免费下载到本地计算机。我们先进行项目分析和准备工作为后续的编码及实施提供基础。 《Python入门核心技术》专栏总目录・点这里 文章目录 1. 前言2. 项目分析3. 准备工作 1. 前言
在当今的云计算环境中OSS对象存储服务成为存储和管理文件的常见选择。然而随着时间的推移OSS中的文件数量不断增加导致存储费用越来越高OSS计费规则。 OSS产品定价中明确了存储费用的单价为元/GB/月例如标准型本地冗余存储单价为0.12元/GB/月那么存储1T的文件每月约为122.88元。 为了节约成本我们可以将旧的数据从OSS中下载到本地计算机以便进行进一步处理或离线访问。通过使用Python编程语言我们可以实现这个目标并且可以免费完成。
本文将介绍如何使用Python编写代码将OSS中的文件免费下载到本地。我们将从项目分析和准备工作开始为后续的编码及实施提供基础。
2. 项目分析
阿里云为我们提供了两种网络环境来访问OSS资源分别是外网访问和内网访问OSS访问域名和数据中心。然而如果我们选择使用外网地址来下载文件将会产生流量费用这就无法实现免费下载的目标。不过当您通过OSS内网地址访问OSS资源时是不会收取任何流量费用的ECS实例通过OSS内网地址访问OSS资源。因此利用OSS内网地址进行下载可以让我们免费获取所需的文件从而节约了成本。这是一个非常有利的选择尤其对于需要频繁下载大量文件的场景来说。 通过OSS内网地址访问OSS资源有以下两种方式 与OSS同地域ECS实例可以直接通过内网访问有权限的OSS资源。与OSS不同地域的ECS实例或公网用户可通过配置ECS反向代理间接实现通过OSS内网地址访问OSS资源。 下面是借助于ECS服务器将OSS中的文件下载到本地的一个大致流程 3. 准备工作
为了确保在下载过程中文件不丢失需要规则好一个完整的流程。结合OSS的官方文档可以分为下面五个步骤 列举OSS中文件并将文件名称存入MySQL数据库中这样数据库中就会有一个完整的、待下载的文件列表 查询数据库中的文件列表逐个从OSS中下载文件到ECS服务器中 下到好后从OSS中删除文件 再从ECS服务器下载到本地 最后删掉ESC服务器中文件。
我们将这个完整流程记录到MySQL数据库中表名为oss_file字段如下图所示 其中status为状态字段对应着上边流程中的五个步骤。 在开始编程之前需要将该表创建好下面是建表语句
CREATE TABLE oss_file (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键,prefix varchar(255) NOT NULL COMMENT 前缀,key varchar(255) NOT NULL COMMENT 文件名,last_modified datetime NOT NULL COMMENT 最后修改时间,size bigint(20) NOT NULL COMMENT 文件大小,status tinyint(1) NOT NULL DEFAULT 0 COMMENT 状态0-未处理1-已下载至ECS2-已从OSS删除3-已下载至本地4-已从ECS删除完成,create_time datetime DEFAULT NULL COMMENT 创建时间,update_time datetime DEFAULT NULL COMMENT 更新时间,PRIMARY KEY (id),UNIQUE KEY i_key (key),KEY i_status_last_modified (status,last_modified) USING BTREE
) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4;字段解释 id自增主键 prefix文件名前缀 key文件名即 OSS 中的文件名 last_modifiedOSS中的最后创建时间 size文件大小单位为字节 status状态标识该文件的处理进度 i_keykey字段的唯一索引OSS中的文件名是唯一的 i_status_last_modifiedstatus 和 last_modified 字段的联合索引后面代码中会利用这两个字段查询文件列表
而代码也将分为四部分主要有 列举OSS文件并存入数据库的oss_file表中 将OSS中文件下载到ECS中并从OSS中删除 提供一个从ECS中下载和删除文件的接口 将ECS中文件下载到本地并删除ECS中的文件。
后面的文章会逐一介绍每一部分代码欢迎继续收看。