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
mc-cmd
Required
设置 ALIAS 的锁定模式。 指定以下支持值之一:
governancecompliance
有关支持模式的更多信息,请参见 AWS S3 文档 Object Lock Overview。
需要指定 VALIDITY。
VALIDITY
mc-cmd
Required
指定对象在创建后保持在 MODE 中的持续时间。
按天计时,指定格式为
Nd的字符串。例如,30d表示对象创建后 30 天。按年计时,指定格式为
Ny的字符串。例如,1y表示对象创建后 1 年。
ALIAS
mc-cmd
Required
需要设置对象锁定配置的对象或对象集合的完整路径。 指定 MinIO 或兼容 S3 服务的 alias 以及存储桶完整路径。 例如:
mc retention set play/mybucket/object.txt MODE VALIDITY
- 如果
ALIAS指定的是存储桶或存储桶前缀,请包含--recursive以将对象锁定设置应用到 存储桶内容。 mc retention set默认仅应用到对象的最新版本。 使用--version-id或--versions可分别将对象锁定设置 应用于指定版本或对象的所有版本。
--bypass
mc-cmd
Optional
允许具有 s3:BypassGovernanceRetention 权限的用户 修改对象。需要 governance 保留 MODE
--default
mc-cmd
Optional
使用 MODE 和 VALIDITY, 为 ALIAS 指定的存储桶设置默认对象锁定设置。 在该存储桶中创建的任何对象都会继承默认对象锁定设置, 除非使用 mc retention set 显式覆盖。
如果指定 --default, mc retention set 会忽略所有其他标志。
--recursive, --r
mc-cmd
Optional
递归将对象锁定设置应用到 ALIAS 路径下的所有对象。
与 --version-id 互斥。
--rewind
mc-cmd
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
mc-cmd
Optional
指示 mc retention set 仅对指定的对象版本执行操作。
--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。
与以下任一标志互斥:
--versions
mc-cmd
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。 - 将
ALIAS替换为已配置的兼容 S3 主机的alias。 - 将
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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。
本页部分内容改编自 MinIO 对象存储文档,© 2020–至今 MinIO, Inc.,依据 CC BY 4.0 授权,由 Silo 项目转换与维护。归属与署名
本页为非官方中文翻译。如与英文原文有出入,以英文原文为准。