mc retention set
语法
mc retention set 命令用于为存储桶中的一个或多个对象配置
Write-Once Read-Many (WORM) locking 设置。
你还可以为存储桶设置默认对象锁设置,使未显式配置对象锁的所有对象继承该存储桶默认值。
要在 legal hold 下锁定对象,
请使用 mc legalhold set。
mc retention set 要求 指定存储桶已启用对象锁。
你**只能**在创建存储桶时启用对象锁。有关启用对象锁创建存储桶的文档,请参见
mc mb --with-lock。
以下命令会在 myminio MinIO 部署中的 mydata 存储桶上,
设置默认 30 天的 GOVERNANCE 对象锁:
mc retention set --default GOVERNANCE "30d" myminio/mydata
命令语法如下:
mc [GLOBALFLAGS] retention set \
[--bypass] \
[--default] \
[--recursive] \
[--rewind "string"] \
[--versions] \
[--version-id "string"]* \
MODE \
"VALIDITY" \
ALIAS
方括号
[]表示可选参数。同一行中的参数彼此相互依赖。
使用管道符
|分隔的参数彼此互斥。
请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。
mc retention set --version-id 与多个其他参数互斥。
更多信息请参见参考文档。
参数
- MODE
- Required
设置
ALIAS的锁定模式。 指定以下支持值之一:governancecompliance
有关支持模式的更多信息,请参见 AWS S3 文档 Object Lock Overview。
需要指定
VALIDITY。
- VALIDITY
- Required
指定对象在创建后保持在
MODE中的持续时间。- 按天计时,指定格式为
Nd的字符串。例如, 30d表示对象创建后 30 天。
- 按天计时,指定格式为
- 按年计时,指定格式为
Ny的字符串。例如, 1y表示对象创建后 1 年。
- 按年计时,指定格式为
- ALIAS
- Required
需要设置对象锁配置的对象或对象集合的完整路径。 指定 MinIO 或兼容 S3 服务的 alias 以及存储桶完整路径。 例如:
mc retention set play/mybucket/object.txt MODE VALIDITY
如果
ALIAS指定的是存储桶或存储桶前缀,请包含--recursive以将对象锁设置应用到 存储桶内容。mc retention set默认仅应用到对象的最新版本。 使用--version-id或--versions可分别将对象锁设置 应用于指定版本或对象的所有版本。
- --bypass
- Optional
允许具有
s3:BypassGovernanceRetention权限的用户 修改对象。需要governance保留MODE
- --default
- Optional
使用
MODE和VALIDITY, 为ALIAS指定的存储桶设置默认对象锁设置。 在该存储桶中创建的任何对象都会继承默认对象锁设置, 除非使用mc retention set显式覆盖。如果指定
--default,mc retention set会忽略所有其他标志。
- --recursive, --r
- Optional
递归将对象锁设置应用到
ALIAS路径下的所有对象。与
--version-id互斥。
- --rewind
- Optional
指示
mc retention set仅对指定时间点存在的对象版本执行操作。如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:
--rewind "2020.03.24T10:00"。如需按时间长度回溯,请将该时长指定为
#d#hh#mm#ss格式的字符串。 例如:--rewind "1d2hh3mm4ss"。
--rewind要求指定的ALIAS指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用mc version启用或禁用存储桶版本控制。
- --version-id, --vid
- Optional
指示
mc retention set仅对指定的对象版本执行操作。--version-id要求指定的ALIAS指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用mc version启用或禁用存储桶版本控制。与以下任一标志互斥:
- --versions
- Optional
指示
mc retention set对存储桶中存在的所有对象版本执行操作。--versions要求指定的ALIAS指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用mc version启用或禁用存储桶版本控制。将
--versions与--rewind结合使用, 可将保留设置应用到特定时间点存在的所有对象版本。
全局标志
此命令支持 全局标志 中的任意选项。
示例
设置存储桶默认保留设置
将 mc retention set 与
--recursive 和
--default 结合使用,
以设置存储桶默认保留设置。
mc retention set --recursive --default MODE DURATION ALIAS/PATH
将
MODE替换为要启用的保留模式。 MinIO 支持 AWS S3 保留模式governance和compliance。将
DURATION替换为对象锁应保持生效的时长。 例如,要将保留期设置为 30 天,请指定30d。将
PATH替换为存储桶路径。
要使用此命令,存储桶 必须 启用对象锁定。 只能在创建存储桶时启用对象锁定。有关创建已启用对象锁定的存储桶的更多信息, 请参阅
mc mb --with-lock。
为已版本化对象设置对象锁配置
将 mc retention set 与
--version-id 结合使用,
可将保留设置应用到特定对象版本:
mc retention set --version-id VERSION MODE DURATION ALIAS/PATH
将 mc retention set 与
--versions 结合使用,
可将保留设置应用到特定对象版本:
mc retention set --versions MODE DURATION ALIAS/PATH
要使用此命令,存储桶 必须 启用对象锁定。 只能在创建存储桶时启用对象锁定。有关创建已启用对象锁定的存储桶的更多信息, 请参阅
mc mb --with-lock。
行为
对象版本的保留
对于启用了 versioning 的存储桶,mc retention set
默认对目标对象(一个或多个)的*最新*版本执行操作。
mc retention set 包含若干特定选项,在*显式*指定时,
可指示命令对特定对象版本*或*对象的所有版本执行操作:
要让 mc retention set 对对象的特定版本执行操作,
请包含 --version-id 参数:
要让 mc retention set 对对象的*所有*版本执行操作,
请包含 --versions 参数:
与 legal hold 的交互
锁定对象会阻止对该对象进行任何修改或删除,
与 COMPLIANCE 对象锁模式类似。
对象可以同时具有基于保留的锁和 legal hold 锁。
legal hold 锁会*覆盖*任何保留锁定,这意味着处于 legal hold 下的对象 即使保留期到期也会保持锁定。对处于 legal hold 下对象的保留设置进行设置、 修改或清除,在 legal hold 到期或被显式禁用之前均不会生效。
有关对象 legal hold 的更多信息,请参见 mc legalhold。
S3 兼容性
mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。
对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。