快开启阿里云对象存储 OSS 防误删新功能--版本控制,保护您珍贵的数据

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
云备份 Cloud Backup,100GB 3个月
简介: 阿里云对象存储 OSS 是保存海量数据的平台,支持丰富的应用。在使用过程中难免会遇到误操作、程序 Bug、覆盖写等导致数据被删除的场景,对于数据的丢失会非常着急,后果也非常严重,甚至某些情况下还会影响你的职业生涯。

一、背景

阿里云对象存储 OSS 是保存海量数据的平台,支持丰富的应用。在使用过程中难免会遇到误操作、程序 Bug、覆盖写等导致数据被删除的场景,对于数据的丢失会非常着急,后果也非常严重,甚至某些情况下还会影响你的职业生涯。OSS 每年都会遇到多起客户误删除数据的事件,为此 OSS 开发了 版本控制 功能,开启该特性后,可以在误删除数据时通过历史版本找回数据。

二、版本控制技术介绍

存储空间(Bucket)开启版本控制后,OSS 会为 Bucket 中所有文件(Object)的每个版本指定唯一的 ID 值,且 Bucket 中现有 Object 的内容、权限保持不变。开启版本控制后,还能够防止意外覆盖或者删除 Object ,并允许查询、恢复 Object 的历史版本。详细信息,请参考 官网 介绍。
原理.png
如上图所示,通过 PUT 操作第一次上传同名 Object (key=example.jpg)时,原始 Object 版本(ID=111111)作为历史版本,生成的新版本(ID=222222)将作为当前版本保存在存储空间中。当再次上传同名 Object 时,原始 Object 版本(包括 ID=111111 以及 ID=222222)将作为历史版本,而生成的新版本(ID=333333)则作为当前版本保存在 Bucket 中。

三、数据防误删实际操作

3.1 开启版本控制

开启版本控制有两种方式:

  • 创建时,选择开通 版本控制。
  • 创建后,设置 版本控制。

开通.png


因此,通过创建后设置版本控制,可以对存量的OSS数据设置版本控制,有效的保障历史数据。

3.2 上传对象

开启版本控制后,在控制台有 显示对象的历史版本 框,选择该框则可以显示对象的历史版本,如下图所示。
上传.png
通过在控制台上传同名对象,则会生成多个版本,其中显示 (最新版本) 的那个对象是最新对象,更新时间 也是最近的时间。

3.3 删除对象

开启版本控制后,删除对象并不会真正删除,而是插入 删除标记,如下图所示。
删除.png
删除对象后,如果没有选择 显示对象的历史版本,则在控制台显示该文件不存在,但实际上对象并未删除,因此可以支持后面的恢复操作。

3.4 快捷的恢复数据

由于开通了版本保护,数据历史版本并未删除,可以采用下图所示的顺序,DIY 恢复数据。第一步,选中 显示对象的历史版本,此时可以看到历史版本,其中显示 (删除标记) 表示该对象被删除。第二步,删除该 (删除标记) 就可以让数据在控制台重新可见。第三步,删除标记成功后,最近的版本被恢复为 (最新版本),此时不管是否选中 显示对象的历史版本,都可以在控制台看到该对象。
恢复.png
因此,开通了版本控制后,可以非常便捷的 DIY 恢复数据,不用再担心“误操作、程序 Bug、覆盖写”等带来的严重影响。

四、数据误删的批量修复实战(工具)

OSS 控制台提供了简单的单对象恢复能力,但是对于删除目录下的海量文件,效率就非常低下了,需要频繁的UI点击,修复速度太慢。因此 OSS 提供了 ossutil 工具,能够批量修复数据,提高修复效率。

4.1 指定前缀批量修复

按前缀.png
整个过程如上图,参考命令为:
$) ./ossutilmac64 ls oss://test-jsj-versioning/prefix/ --all-versions
| grep -rn "true        true           oss://"
| awk -F ' '  '{drcmd=("./ossutilmac64 rm " $10" --version-id "$7);print drcmd}'
| sh
其中,删除标记会显示 "true true",所以只需要删除匹配 前缀 的删除标记,即可恢复对象。

4.2 指定时间批量修复

按时间.png
整个过程如上图,参考命令为:
./ossutilmac64 ls oss://test-jsj-versioning/pre- --all-versions
| awk '{(dtime=($1" "$2" "$3" "$4));
if ((dtime>="2020-06-16 16:55:05 +0800 CST")
&& (dtime<="2020-06-16 16:55:40 +0800 CST")) print}'
| grep -rn "true        true           oss://"
| awk -F ' '  '{drcmd=("./ossutilmac64 rm " $10" --version-id "$7);print drcmd}'
| sh
只需要删除匹配 时间范围 的删除标记,即可恢复对象。

4.3 指定修复列表文件批量修复

按修复列表文件.png
整个过程如上图,参考命令为:
for i in cat file_list;
do
./ossutilmac64 ls oss://test-jsj-versioning/$i --all-versions
| grep -rn "true        true           oss://"
| awk -F ' '  '{drcmd=("./ossutilmac64 rm " $10" --version-id "$7);print drcmd}'
| sh;
done
只需要遍历 修复列表文件,并删除对象的删除标记,即可恢复对象。

五、版本控制和生命周期结合实现类回收站(成本优化)

设置版本控制后,即使删除对象也会保留历史版本,这会带来成本的增加。为了支持版本控制的数据恢复,以及成本优化,设计了 版本控制+生命周期 的组合方案,如下图所示。
回收站.png
在生命周期配置中,针对 当前版本(删除标记)历史版本 设置策略,可以将其在指定时间后转换为其他类型从而降低成本,也可以选择在指定天数(比如30天)之后删除,从而在 30 天内仍然可以恢复数据,类似回收站的保留时长。

六、小结

数据误删除是非常严重的事件,也是难以预防的问题。通过开通对象存储 OSS 的 版本控制 提供了有效的数据保护方案,封装 版本控制+生命周期 的回收站也可以帮助更好的优化成本和恢复体验,希望您能尽快开通,保护您的珍贵数据。


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
16天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
存储 Java 开发工具
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
阿里云OSS(Object Storage Service)是一种安全、可靠且成本低廉的云存储服务,支持海量数据存储。用户可通过网络轻松存储和访问各类文件,如文本、图片、音频和视频等。使用OSS后,项目中的文件上传业务无需在服务器本地磁盘存储文件,而是直接上传至OSS,由其管理和保障数据安全。此外,介绍了OSS服务的开通流程、Bucket创建、AccessKey配置及环境变量设置,并提供了Java SDK示例代码,帮助用户快速上手。最后,展示了如何通过自定义starter简化工具类集成,实现便捷的文件上传功能。
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
|
3月前
|
存储 机器学习/深度学习 弹性计算
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
|
3月前
|
存储 安全 大数据
对象存储的意义:探索数据新纪元的关键基石
在信息爆炸时代,数据成为核心资产,而高效安全的数据存储至关重要。对象存储作为一种新兴技术,起源于20世纪90年代,旨在解决传统文件系统的局限性。随着云计算和大数据技术的发展,它已成为关键技术之一。对象存储具备高可扩展性、高可靠性、低成本、易于管理和多协议支持等优点。它支撑大数据发展、推动云计算繁荣、助力企业数字化转型并保障数据安全。未来,对象存储将进一步提升性能,实现智能化管理,并与边缘计算融合,获得政策支持,成为数据新时代的关键基石。
169 3
|
4月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之多个业务流程上传同名资源到同一个OSS(对象存储服务)URL,会产生什么问题
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
DataWorks 安全 定位技术
DataWorks产品使用合集之如何同步OSS中的Parquet数据,并解析里面的数组成多个字段
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
存储 运维 安全
阿里云OSS的优势
【7月更文挑战第19天】阿里云OSS的优势
189 2
|
4月前
|
存储 API 开发工具
阿里云OSS
【7月更文挑战第19天】阿里云OSS
187 1

相关产品

  • 对象存储