当前位置: 首页 > news >正文

使用 S3 生命周期精确管理对象生命周期

在亚马逊工作这些年,我发现 S3 的生命周期配置是管理对象生命周期的重要但复杂的工具。在这篇文章中,我将利用实战经验,深入剖析生命周期,从核心概念到实际应用。

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

导言

在云存储中管理数据生命周期至关重要却很复杂。随着大量数据快速累积,不受控制的增长会导致成本指数上升。S3 生命周期让我们可以建立自动化策略,在存储类型之间转变对象或删除对象。

本文将详细剖析生命周期,从基础逻辑到实际配置。您将学习如何精确控制对象生命周期的同时优化存储成本。本文将提供示例并辅以流程图和图解进行步骤详解。我的目标是提供可直接实施的见解,应用于您的云架构中。

背景知识

首先简述几个关键概念:

S3 生命周期策略对满足特定条件的对象应用规则。每个规则定义在对象生命周期的某些点上满足标准时要执行的操作

常见条件包括:

  • 对象键名称前缀或标签
  • 对象创建日期
  • 总生命周期天数

典型操作包括:

  • 转变存储类型
  • 终止未完成的多部分上传
  • 永久删除对象

实际上,生命周期基于定义的规则,自动在 S3 存储类型之间转变对象,或完全删除对象。

问题所在

生命周期为什么有用且复杂?

不受控制的数据累积会迅速增加云存储成本。临时手动干预操作既费力又容易出错。生命周期提供自动化,但制定有效精确的规则需要深入理解。

错误配置可能导致意外转变或删除。复杂访问模式,比如每天数百万次上传/访问,进一步增加了策略设计的难度。

因此,掌握生命周期的逻辑和复杂度是必须的。

S3 生命周期的工作原理

让我们逐步看一下生命周期配置:

2-1. lifecycle-transitions-v3.png

1. 定义生命周期规则

根据名称、标签或创建日期为对象制定规则过滤器。

2. 指定操作

选择在匹配对象上执行的操作,比如转变存储类型或删除。

3. 评估对象

S3 定期根据规则评估对象。匹配的对象进入指定操作的队列。

4. 执行操作

对于等待操作的对象,在达到下一个计划间隔时,S3 会执行指定的操作。

总之,生命周期基于细致的规则自动转变或删除对象。但是设计高效可预测的策略需要考虑周全.

关键优势与应用

生命周期的强大之处在哪里?

成本优化:极少访问的数据转变到低频或冷存储,可节省高达 90% 的存储成本。直接删除不需要的数据。

存储分层:根据访问模式自动在存储类型之间迁移数据。例如,30天后访问日志转变到低频存储。

清理工作:在指定天数后终止未完成的多部分上传,以节省成本。

合规性:根据数据保留政策,在达到规定保存期限后,永久删除敏感数据。

简而言之,生命周期实现从创建到删除的细致自动化数据控制,有效管理存储增长。

实际应用示例

下面我们看一些演示实际使用的生命周期示例:

优化存储成本

30天后日志转变到低频存储,365天后删除:

<LifecycleConfiguration><Rule><Filter><Prefix>logs/</Prefix></Filter><Transitions><Transition><Days>30</Days><StorageClass>STANDARD_IA</StorageClass></Transition></Transitions><Expiration><Days>365</Days></Expiration></Rule>
</LifecycleConfiguration>

自动数据分层

90天后 tax/ 开头的对象转变到冷存储以归档:

<Rule><Filter><Prefix>tax/</Prefix></Filter><Transitions><Transition><Days>90</Days><StorageClass>GLACIER</StorageClass></Transition></Transitions>
</Rule>

删除未完成的多部分上传

7天内未完成的上传过期以节省成本:

<Rule><Filter><And><Prefix>uploads/</Prefix><ObjectState>Multipart</ObjectState></And></Filter><Expiration><Days>7</Days></Expiration>
</Rule>

主要精髓

让我们总结学习要点:

  • 生命周期通过细致规则自动转变和删除对象
  • 匹配访问模式实现成本优化,避免不受控制的增长
  • 精确的策略设计需要深入理解,以防意外后果
  • 实际示例演示了常见应用,比如分层、清理和保留

希望这些见解有助于您掌握生命周期的复杂度,并有效实施,也欢迎您可以分享您的问题和应用经验。我们社区的集体智慧将加深我们所有人的理解。

参考资料

  • S3 生命周期配置元素
  • 使用 S3 生命周期自动化存储分层
  • 管理存储生命周期

 文章来源:https://dev.amazoncloud.cn/column/article/64e5cb3384d23218430681eb?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN

相关文章:

使用 S3 生命周期精确管理对象生命周期

在亚马逊工作这些年,我发现 S3 的生命周期配置是管理对象生命周期的重要但复杂的工具。在这篇文章中,我将利用实战经验,深入剖析生命周期,从核心概念到实际应用。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活…...

RocketMQ零拷贝原理

1 PageCache ●由内存中的物理page组成&#xff0c;其内容对应磁盘上的block。 ●page cache的大小是动态变化的。 ●backing store&#xff1a;cache缓存的存储设备。 ●一个page通常包含多个block,而block不一定是连续的。 1.1读Cache ●当内核发起一个读请求时&#x…...

HTML <tbody> 标签

实例 带有 thead、tbody 以及 tfoot 元素的 HTML 表格: <table border="1"><thead><tr><th>Month</th><th>Savings</th></tr></thead><tfoot><tr><td>Sum</td><td>$180<…...

4.22 TCP 四次挥手,可以变成三次吗?

目录 为什么 TCP 挥手需要四次呢&#xff1f; 粗暴关闭 vs 优雅关闭 close函数 shotdown函数 什么情况会出现三次挥手&#xff1f; 什么是 TCP 延迟确认机制&#xff1f; TCP 序列号和确认号是如何变化的&#xff1f; 在一些情况下&#xff0c; TCP 四次挥手是可以变成 T…...

鲁棒性简述

鲁棒性&#xff08;Robustness&#xff09;是指系统或算法对于异常情况或不良条件的抵抗能力和适应能力。一个鲁棒性强的系统能够在面对异常、噪声、错误或意外情况时&#xff0c;仍能够保持高效的运行或输出可接受的结果。 鲁棒性是在设计和开发系统时要考虑的一个重要特性&am…...

复习leetcode

​​​​​​460. LFU 缓存 31. 下一个排列 322. 零钱兑换 662. 二叉树最大宽度 43. 字符串相乘...

从聚类(Clustering)到异常检测(Anomaly Detection):常用无监督学习方法的优缺点

一、引言 无监督学习是机器学习的一种重要方法&#xff0c;与有监督学习不同&#xff0c;它使用未标记的数据进行训练和模式发现。无监督学习在数据分析中扮演着重要的角色&#xff0c;能够从数据中发现隐藏的模式、结构和关联关系&#xff0c;为问题解决和决策提供有益的信息。…...

git仓库提交流程

拉取最新代码 cd dev-ops git拉取最新master代码&#xff1a; git checkout master git pull git checkout wangdachu_dev git merge master :wq 1、切换到文件的本地目录 cd ~/Desktop/aldaba-ops 2、修改用户名和邮箱 git config --global user.email "xxxxxxxxxx.…...

层叠上下文、层叠顺序

原文合集地址如下&#xff0c;有需要的朋友可以关注 本文地址 什么是层叠上下文 层叠上下文&#xff08;Stacking Context&#xff09;是指在 HTML 和 CSS 中&#xff0c;用于控制和管理元素层叠顺序以及呈现的一种机制。在一个网页中&#xff0c;许多元素&#xff08;例如文…...

postgres开发目录

目录 推荐 0.00001 Bruce的博客 0.00002 官方社区博客 0.00003 德哥的培训资料 0.00004 官方开发指南 0.00005 官方网站 0.00006 官方中国网站 0.00007 官方Wiki 0.00008 postgresql代码树 0.00009 gitee-学习资料1 0.00010 gitee-源码 安装与编译 1.00001git源码clone后进…...

计算机视觉入门 6) 数据集增强(Data Augmentation)

系列文章目录 计算机视觉入门 1&#xff09;卷积分类器计算机视觉入门 2&#xff09;卷积和ReLU计算机视觉入门 3&#xff09;最大池化计算机视觉入门 4&#xff09;滑动窗口计算机视觉入门 5&#xff09;自定义卷积网络计算机视觉入门 6&#xff09; 数据集增强&#xff08;D…...

Python分享之redis(2)

Hash 操作 redis中的Hash 在内存中类似于一个name对应一个dic来存储 hset(name, key, value) #name对应的hash中设置一个键值对&#xff08;不存在&#xff0c;则创建&#xff0c;否则&#xff0c;修改&#xff09; r.hset("dic_name","a1","aa&quo…...

springboot aop方式实现敏感数据自动加解密

一、前言 在实际项目开发中&#xff0c;可能会涉及到一些敏感信息&#xff0c;那么我们就需要对这些敏感信息进行加密处理&#xff0c; 也就是脱敏&#xff0c;比如像手机号、身份证号等信息。如果我们只是在接口返回后再去做替换处理&#xff0c;则代码会显得非常冗余&#xf…...

RabbitMQ---work消息模型

1、work消息模型 工作队列或者竞争消费者模式 在第一篇教程中&#xff0c;我们编写了一个程序&#xff0c;从一个命名队列中发送并接受消息。在这里&#xff0c;我们将创建一个工作队列&#xff0c;在多个工作者之间分配耗时任务。 工作队列&#xff0c;又称任务队列。主要思…...

GitRedisNginx合集

目录 文件传下载 Git常用命令 Git工作区中文件的状态 远程仓库操作 分支操作 标签操作 idea中使用git 设置git.exe路径 操作步骤 linux配置jdk 安装tomcat 查看是否启动成功 查看tomcat进程 防火墙操作 开放指定端口并立即生效 安装mysql 修改mysql密码 安装lrzsz软…...

系统架构设计师之缓存技术:Redis与Memcache能力比较

系统架构设计师之缓存技术&#xff1a;Redis与Memcache能力比较...

02.sqlite3学习——嵌入式数据库的基本要求和SQLite3的安装

目录 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模型 ubuntu 22.04下的SQLite安装 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模…...

AIGC ChatGPT 按年份进行动态选择的动态图表

动态可视化分析的好处与优势&#xff1a; 1. 提高信息理解性&#xff1a;可视化分析使得大量复杂的数据变得易于理解&#xff0c;通过图表、颜色、形状、尺寸等方式&#xff0c;能够直观地表现不同的数据关系和模式。 2. 加快决策速度&#xff1a;数据可视化可以帮助用户更快…...

分布式—雪花算法生成ID

一、简介 1、雪花算法的组成&#xff1a; 由64个Bit(比特)位组成的long类型的数字 0 | 0000000000 0000000000 0000000000 000000000 | 00000 | 00000 | 000000000000 1个bit&#xff1a;符号位&#xff0c;始终为0。 41个bit&#xff1a;时间戳&#xff0c;精确到毫秒级别&a…...

Python语言实现React框架

迷途小书童的 Note 读完需要 6分钟 速读仅需 2 分钟 1 reactpy 介绍 reactpy 是一个用 Python 语言实现的 ReactJS 框架。它可以让我们使用 Python 的方式来编写 React 的组件&#xff0c;构建用户界面。 reactpy 的目标是想要将 React 的优秀特性带入 Python 领域&#xff0c;…...

Netty入门学习和技术实践

Netty入门学习和技术实践 Netty1.Netty简介2.IO模型3.Netty框架介绍4. Netty实战项目学习5. Netty实际应用场景6.扩展 Netty 1.Netty简介 Netty是由JBOSS提供的一个java开源框架&#xff0c;现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具&…...

MySQL详细安装与配置

免安装版的Mysql MySQL关是一种关系数据库管理系统&#xff0c;所使用的 SQL 语言是用于访问数据库的最常用的 标准化语言&#xff0c;其特点为体积小、速度快、总体拥有成本低&#xff0c;尤其是开放源码这一特点&#xff0c;在 Web 应用方面 MySQL 是最好的 RDBMS(Relation…...

裸露土堆识别算法

裸露土堆识别算法首先利用图像处理技术&#xff0c;提取出图像中的土堆区域。裸露土堆识别算法首通过计算土堆中被绿色防尘网覆盖的比例&#xff0c;判断土堆是否裸露。若超过40%的土堆没有被绿色防尘网覆盖&#xff0c;则视为裸露土堆。当我们谈起计算机视觉时&#xff0c;首先…...

说说你对Redux的理解?其工作原理?

文章目录 redux&#xff1f;工作原理如何使用后言 redux&#xff1f; React是用于构建用户界面的&#xff0c;帮助我们解决渲染DOM的过程 而在整个应用中会存在很多个组件&#xff0c;每个组件的state是由自身进行管理&#xff0c;包括组件定义自身的state、组件之间的通信通…...

《基于 Vue 组件库 的 Webpack5 配置》7.路径别名 resolve.alias 和 性能 performance

路径别名 resolve.alias const path require(path);module.exports {resolve: {alias: {"": path.resolve(__dirname, "./src/"),"assets": path.resolve(__dirname, "./src/assets/"),"mixins": path.resolve(__dirname,…...

基于PaddleOCR2.7.0发布WebRest服务测试案例

基于PaddleOCR2.7.0发布WebRest服务测试案例 #WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. #警告&#xff1a;这是一个开发服务器。不要在生产部署中使用它。请改用生产WSGI服务器。 输出结果…...

Solidity 合约安全,常见漏洞 (下篇)

Solidity 合约安全&#xff0c;常见漏洞 &#xff08;下篇&#xff09; Solidity 合约安全&#xff0c;常见漏洞 &#xff08;上篇&#xff09; 不安全的随机数 目前不可能用区块链上的单一交易安全地产生随机数。区块链需要是完全确定的&#xff0c;否则分布式节点将无法达…...

nodejs根据pdf模板填入中文数据并生成新的pdf文件

导入pdf-lib库和fontkit npm install pdf-lib fs npm install pdf-lib/fontkit 具体代码 const { PDFDocument, StandardFonts } require(pdf-lib); const fs require(fs); const fontkit require(pdf-lib/fontkit) let pdfDoc let font async function fillPdfForm(temp…...

UE4与pycharm联合仿真的调试问题及一些仿真经验

文章目录 ue4与pycharm联合仿真的调试问题前言ue4端的debug过程pycharm端 一些仿真经验小结 ue4与pycharm联合仿真的调试问题 前言 因为在实验中我需要用到py代码输出控制信息给到ue4中&#xff0c;并且希望看到py端和ue端分别在运行过程中的输出以及debug调试。所以&#xf…...

【数据分析】波士顿矩阵

波士顿矩阵是一种用于分析市场定位和企业发展战略的管理工具。由美国波士顿咨询集团&#xff08;Boston Consulting Group&#xff09;于1970年提出&#xff0c;并以该集团命名。 波士顿矩阵主要基于产品生命周期和市场份额两个维度&#xff0c;将企业的产品或业务分为四个象限…...

环保网站建设多少钱/轻松seo优化排名 快排

SC命令&#xff0c;与“服务控制器”和已安装设备进行通讯。SC.exe 检索和设置有关服务的控制信息。可以使用 SC.exe 来测试和调试服务程序。可以设置存储在注册表中的服务属性&#xff0c;以控制如何在启动时启动服务应用程序&#xff0c;以及如何将其作为后台程序运行。SC.ex…...

做年报的网站怎么登不上去了/如何创建个人网站免费

保存不存在的文件时的问题文件权限,最初创建为新文件.现在,一切顺利,保存的文件似乎具有模式644.为了使文件保存为模式777,我必须在此处更改什么&#xff1f;万分感谢任何提示,线索或答案.我认为与此相关的代码包括&#xff1a;/* write to file */self::writeFileContent($pat…...

网站建设及规划方案/百度浏览器网页

亲密---我感觉,可以用和人和事处的时间长短,并用心 难?不去做? 前作业: 1.什么是微服务 将整个项目&#xff0c;按照功能拆分&#xff0c;拆分后能够更容易地部署&#xff0c;扩展&#xff0c;没有技术壁垒 2.微服务用什么优势&#xff0c;go或者py去做&#xff0c;怎么实现 …...

wordpress增加访问速度/网站排名

搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 20642 Accepted Submission(s): 7013 Problem Description 搬寝室是非常累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,…...

网站改版新闻/国家职业技能培训平台

QString 类是 Qt 中用于表示字符串的类&#xff0c;实现在 QtCore 共享库中。QString 类在实现上有以下特征。 1&#xff09;字符串采用 Unicode 内部编码&#xff0c;可以表示世界上大多数语言的文字。 2&#xff09;字符串的存储有引用计数&#xff0c;当一个 QString 对象被…...

班级网站中个人简介怎么做/电脑培训

PROXMOX6.3.6 更改机器名称 参考链接 https://www.baidu.com/link?urlljbh9wHn6YRho6nxxBdbydXNZ3vDERHVZF98SqkDNxJagu4NCtTfvnz5NilOiqqs-peS57O0v5z1t7r2-Zy2dhGQ7D5oIilOM6guFO9uTIa&wd&eqida61791420001d917000000066083e127 参考这个链接准备不停机修改主机名…...