8.8. bucket 生命周期
作为存储管理员,您可以使用存储桶生命周期配置来管理对象,以便它们在整个生命周期中有效地存储。例如,您可以根据您的用例,将对象转换到更便宜的存储类、归档甚至删除它们。
RADOS 网关支持 S3 API 对象到期,方法是利用为一组 bucket 对象定义规则。每个规则都有一个前缀,用于选择对象,以及对象不可用的天数。
radosgw-admin lc reshard
命令在 Red Hat Ceph Storage 3.3 中已弃用,Red Hat Ceph Storage 4 及更新的版本中不被支持。
8.8.1. 创建生命周期管理策略 复制链接链接已复制到粘贴板!
您可以使用标准 S3 操作来管理存储桶生命周期策略配置,而不是使用 radosgw-admin
命令。RADOS 网关仅支持应用于 bucket 的 Amazon S3 API 策略语言的子集。生命周期配置包含为一组 bucket 对象定义的一个或多个规则。
先决条件
- 正在运行的红帽存储集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建的用户具有访问权限的 S3 用户。
-
使用安装的
AWS CLI
软件包访问 Ceph 对象网关客户端。
流程
为生命周期配置创建 JSON 文件:
示例
vi lifecycle.json
[user@client ~]$ vi lifecycle.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在文件中添加特定的生命周期配置规则:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生命周期配置示例在 1 天后在 images 目录中过期对象。
在存储桶上设置生命周期配置:
语法
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api put-bucket-lifecycle-configuration --bucket BUCKET_NAME --lifecycle-configuration file://PATH_TO_LIFECYCLE_CONFIGURATION_FILE/LIFECYCLE_CONFIGURATION_FILE.json
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api put-bucket-lifecycle-configuration --bucket BUCKET_NAME --lifecycle-configuration file://PATH_TO_LIFECYCLE_CONFIGURATION_FILE/LIFECYCLE_CONFIGURATION_FILE.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
aws --endpoint-url=http://host01:80 s3api put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://lifecycle.json
[user@client ~]$ aws --endpoint-url=http://host01:80 s3api put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://lifecycle.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,Cycle
.json
文件存在于当前目录中。
验证
检索存储桶的生命周期配置:
语法
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:从 Ceph 对象网关节点登录 Cephadm shell 并获取存储桶生命周期配置:
语法
radosgw-admin lc get --bucket=BUCKET_NAME
radosgw-admin lc get --bucket=BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.8.2. 删除生命周期管理策略 复制链接链接已复制到粘贴板!
您可以使用 s3api delete-bucket-lifecycle
命令删除指定存储桶的生命周期管理策略。
先决条件
- 正在运行的红帽存储集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建的用户具有访问权限的 S3 用户。
-
使用安装的
AWS CLI
软件包访问 Ceph 对象网关客户端。
流程
删除生命周期配置:
语法
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api delete-bucket-lifecycle --bucket BUCKET_NAME
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api delete-bucket-lifecycle --bucket BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
aws --endpoint-url=http://host01:80 s3api delete-bucket-lifecycle --bucket testbucket
[user@client ~]$ aws --endpoint-url=http://host01:80 s3api delete-bucket-lifecycle --bucket testbucket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检索存储桶的生命周期配置:
语法
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
aws --endpoint-url=http://host01:80 s3api get-bucket-lifecycle-configuration --bucket testbucket
[user@client ~]# aws --endpoint-url=http://host01:80 s3api get-bucket-lifecycle-configuration --bucket testbucket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:从 Ceph 对象网关节点,检索存储桶生命周期配置:
语法
radosgw-admin lc get --bucket=BUCKET_NAME
radosgw-admin lc get --bucket=BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin lc get --bucket=testbucket
[ceph: root@host01 /]# radosgw-admin lc get --bucket=testbucket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果没有存储桶生命周期策略,该命令不会返回任何信息。
8.8.3. 更新生命周期管理策略 复制链接链接已复制到粘贴板!
您可以使用 s3cmd put-bucket-lifecycle-configuration
命令更新生命周期管理策略。
put-bucket-lifecycle-configuration
覆盖现有的存储桶生命周期配置。如果要保留任何当前生命周期策略设置,您必须将它们包括在生命周期配置文件中。
先决条件
- 正在运行的红帽存储集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建的用户具有访问权限的 S3 用户。
-
使用安装的
AWS CLI
软件包访问 Ceph 对象网关客户端。
流程
为生命周期配置创建 JSON 文件:
示例
vi lifecycle.json
[user@client ~]$ vi lifecycle.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在文件中添加特定的生命周期配置规则:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新存储桶上的生命周期配置:
语法
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api put-bucket-lifecycle-configuration --bucket BUCKET_NAME --lifecycle-configuration file://PATH_TO_LIFECYCLE_CONFIGURATION_FILE/LIFECYCLE_CONFIGURATION_FILE.json
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api put-bucket-lifecycle-configuration --bucket BUCKET_NAME --lifecycle-configuration file://PATH_TO_LIFECYCLE_CONFIGURATION_FILE/LIFECYCLE_CONFIGURATION_FILE.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
aws --endpoint-url=http://host01:80 s3api put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://lifecycle.json
[user@client ~]$ aws --endpoint-url=http://host01:80 s3api put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://lifecycle.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检索存储桶的生命周期配置:
语法
aws --endpointurl=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME
aws --endpointurl=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:从 Ceph 对象网关节点登录 Cephadm shell 并获取存储桶生命周期配置:
语法
radosgw-admin lc get --bucket=BUCKET_NAME
radosgw-admin lc get --bucket=BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.8.4. 监控存储桶生命周期 复制链接链接已复制到粘贴板!
您可以使用 radosgw-admin lc list
和 radosgw-admin lc process
命令监控生命周期并手动处理存储桶的生命周期。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- Ceph 对象网关节点的根级别访问权限.
- 创建带有应用生命周期配置策略的 S3 存储桶。
流程
登录到 Cephadm shell:
示例
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出存储桶生命周期进度:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow bucket 生命周期处理状态可以是以下之一:
- UNINITIAL - 进程尚未运行。
- PROCESSING - 进程当前正在运行。
- COMPLETE - 进程已完成。
可选:您可以手动处理存储桶生命周期策略:
处理单个存储桶的生命周期策略:
语法
radosgw-admin lc process --bucket=BUCKET_NAME
radosgw-admin lc process --bucket=BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin lc process --bucket=testbucket1
[ceph: root@host01 /]# radosgw-admin lc process --bucket=testbucket1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 立即处理所有存储桶生命周期策略:
示例
[ceph: root@host01 /]# radosgw-admin lc process
[ceph: root@host01 /]# radosgw-admin lc process
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
列出存储桶生命周期策略:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.8.5. 配置生命周期过期窗口 复制链接链接已复制到粘贴板!
您可以通过设置 rgw_lifecycle_work_time
参数,设置生命周期管理进程每天运行的时间。默认情况下,生命周期处理每天每晚进行一次。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
流程
登录到 Cephadm shell:
示例
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置生命周期过期时间:
语法
ceph config set client.rgw rgw_lifecycle_work_time %D:%D-%D:%D
ceph config set client.rgw rgw_lifecycle_work_time %D:%D-%D:%D
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 %d:%d-%d:%d 替换为
start_hour:start_minute-end_hour:end_minute
。示例
[ceph: root@host01 /]# ceph config set client.rgw rgw_lifecycle_work_time 06:00-08:00
[ceph: root@host01 /]# ceph config set client.rgw rgw_lifecycle_work_time 06:00-08:00
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检索生命周期过期工作时间:
示例
[ceph: root@host01 /]# ceph config get client.rgw rgw_lifecycle_work_time 06:00-08:00
[ceph: root@host01 /]# ceph config get client.rgw rgw_lifecycle_work_time 06:00-08:00
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.8.6. S3 bucket 生命周期在存储集群中转换 复制链接链接已复制到粘贴板!
您可以使用 bucket 生命周期配置来管理对象,以便在整个对象生命周期内有效存储对象。对象生命周期转换规则允许您在对象生命周期内管理和有效存储对象。您可以将对象转换到更便宜的存储类、存档甚至删除它们。
您可以为以下对象创建存储类:
- 快速介质,如 SSD 或 NVMe 用于 I/O 敏感工作负载。
- 速度较慢的磁介质,如 SAS 或 SATA 以进行归档。
您可以为热存储类和冷存储类之间的数据移动创建调度。您可以在指定时间后调度此移动,以便对象过期并被永久删除,例如,您可以在创建对象 30 天后将其转换为存储类,甚至可以在创建对象后一年将对象归档到存储类。您可以通过转换规则完成此操作。这个规则适用于从一个存储类转换到另一个存储类的对象。生命周期配置包含使用 <Rule>
元素的一个或多个规则。
8.8.7. 将对象从一个存储类转换到另一个存储类 复制链接链接已复制到粘贴板!
对象生命周期转换规则允许您将对象从一个存储类转换为另一个类。
您可以在复制池、纠删代码池之间迁移数据,复制到纠删代码池,或使用 Ceph 对象网关生命周期转换策略迁移到复制池。
在多站点配置中,当生命周期转换规则应用于第一个站点时,若要将对象从一个数据池转换到同一存储集群中的另一个数据,则同一规则对第二个站点有效,如果第二个站点具有使用 rgw
应用创建并启用了相应的数据池。
先决条件
- 安装 Ceph 对象网关软件.
- Ceph 对象网关节点的根级别访问权限.
- 创建的用户具有访问权限的 S3 用户。
流程
创建新数据池:
语法
ceph osd pool create POOL_NAME
ceph osd pool create POOL_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph osd pool create test.hot.data
[ceph: root@host01 /]# ceph osd pool create test.hot.data
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新存储类:
语法
radosgw-admin zonegroup placement add --rgw-zonegroup default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS
radosgw-admin zonegroup placement add --rgw-zonegroup default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为新存储类提供区放置信息:
语法
radosgw-admin zone placement add --rgw-zone default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS --data-pool DATA_POOL
radosgw-admin zone placement add --rgw-zone default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS --data-pool DATA_POOL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在创建具有写入一次的冷或归档数据存储池时,请考虑设置
compression_type
。在数据池中启用
rgw
应用程序:语法
ceph osd pool application enable POOL_NAME rgw
ceph osd pool application enable POOL_NAME rgw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph osd pool application enable test.hot.data rgw enabled application 'rgw' on pool 'test.hot.data'
[ceph: root@host01 /]# ceph osd pool application enable test.hot.data rgw enabled application 'rgw' on pool 'test.hot.data'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
重新启动所有
rgw
守护进程。 创建存储桶:
示例
[ceph: root@host01 /]# aws s3api create-bucket --bucket testbucket10 --create-bucket-configuration LocationConstraint=default:default-placement --endpoint-url http://10.0.0.80:8080
[ceph: root@host01 /]# aws s3api create-bucket --bucket testbucket10 --create-bucket-configuration LocationConstraint=default:default-placement --endpoint-url http://10.0.0.80:8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加对象:
示例
[ceph: root@host01 /]# aws --endpoint=http://10.0.0.80:8080 s3api put-object --bucket testbucket10 --key compliance-upload --body /root/test2.txt
[ceph: root@host01 /]# aws --endpoint=http://10.0.0.80:8080 s3api put-object --bucket testbucket10 --key compliance-upload --body /root/test2.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建第二个数据池:
语法
ceph osd pool create POOL_NAME
ceph osd pool create POOL_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph osd pool create test.cold.data
[ceph: root@host01 /]# ceph osd pool create test.cold.data
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新存储类:
语法
radosgw-admin zonegroup placement add --rgw-zonegroup default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS
radosgw-admin zonegroup placement add --rgw-zonegroup default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为新存储类提供区放置信息:
语法
radosgw-admin zone placement add --rgw-zone default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS --data-pool DATA_POOL
radosgw-admin zone placement add --rgw-zone default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS --data-pool DATA_POOL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin zone placement add --rgw-zone default --placement-id default-placement --storage-class cold.test --data-pool test.cold.data
[ceph: root@host01 /]# radosgw-admin zone placement add --rgw-zone default --placement-id default-placement --storage-class cold.test --data-pool test.cold.data
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在数据池中启用
rgw
应用程序:语法
ceph osd pool application enable POOL_NAME rgw
ceph osd pool application enable POOL_NAME rgw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph osd pool application enable test.cold.data rgw enabled application 'rgw' on pool 'test.cold.data'
[ceph: root@host01 /]# ceph osd pool application enable test.cold.data rgw enabled application 'rgw' on pool 'test.cold.data'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
重新启动所有
rgw
守护进程。 要查看区组配置,请运行以下命令:
语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看区配置,请运行以下命令:
语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建存储桶:
示例
[ceph: root@host01 /]# aws s3api create-bucket --bucket testbucket10 --create-bucket-configuration LocationConstraint=default:default-placement --endpoint-url http://10.0.0.80:8080
[ceph: root@host01 /]# aws s3api create-bucket --bucket testbucket10 --create-bucket-configuration LocationConstraint=default:default-placement --endpoint-url http://10.0.0.80:8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在转换前列出对象:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为生命周期配置创建 JSON 文件:
示例
[ceph: root@host01 /]# vi lifecycle.json
[ceph: root@host01 /]# vi lifecycle.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在文件中添加特定的生命周期配置规则:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生命周期配置示例显示一个对象,它将在 5 天后从默认
STANDARD
存储类过渡到hot.test
存储类,在 20 天后过渡到cold.test
存储类,并在冷.test 存储类中最终 365
天后过期。在存储桶上设置生命周期配置:
示例
[ceph: root@host01 /]# aws s3api put-bucket-lifecycle-configuration --bucket testbucket10 --lifecycle-configuration file://lifecycle.json
[ceph: root@host01 /]# aws s3api put-bucket-lifecycle-configuration --bucket testbucket10 --lifecycle-configuration file://lifecycle.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索存储桶上的生命周期配置:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证对象是否已转换为给定存储类:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.8.8. 为 S3 启用对象锁定 复制链接链接已复制到粘贴板!
通过使用 S3 对象锁定机制,您可以使用保留周期、法律保存和存储桶配置等对象锁定概念来实施 Write-Once-Read_Many (WORM)功能,作为自定义工作流覆盖数据删除权限的一部分。
对于对象锁定正确执行来支持 GOVERNANCE 或 COMPLIANCE 模式,定义并需要的值是对象版本而不是对象名称。在写入对象时,您需要知道对象的版本,以便稍后可以检索对象。
先决条件
- 正在运行的 Red Hat Ceph Storage 集群安装有 Ceph 对象网关。
- Ceph 对象网关节点的根级别访问权限.
- 具有 version-bucket 创建访问权限的 S3 用户。
流程
创建启用了对象锁定的存储桶:
语法
aws --endpoint=http://RGW_PORT:8080 s3api create-bucket --bucket BUCKET_NAME --object-lock-enabled-for-bucket
aws --endpoint=http://RGW_PORT:8080 s3api create-bucket --bucket BUCKET_NAME --object-lock-enabled-for-bucket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
aws --endpoint=http://rgw.ceph.com:8080 s3api create-bucket --bucket worm-bucket --object-lock-enabled-for-bucket
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api create-bucket --bucket worm-bucket --object-lock-enabled-for-bucket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为存储桶设置保留周期:
语法
aws --endpoint=http://RGW_PORT:8080 s3api put-object-lock-configuration --bucket BUCKET_NAME --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "RETENTION_MODE", "Days": NUMBER_OF_DAYS }}}'
aws --endpoint=http://RGW_PORT:8080 s3api put-object-lock-configuration --bucket BUCKET_NAME --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "RETENTION_MODE", "Days": NUMBER_OF_DAYS }}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
aws --endpoint=http://rgw.ceph.com:8080 s3api put-object-lock-configuration --bucket worm-bucket --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 10 }}}'
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object-lock-configuration --bucket worm-bucket --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 10 }}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以为 S3 对象锁定中的 RETENTION_MODE 选择 GOVERNANCE 或 COMPLIANCE 模式,将不同的保护级别应用到任何受对象锁定保护的对象版本。
在 GOVERNANCE 模式中,用户无法覆盖或删除对象版本,或者更改其锁定设置,除非它们有特殊权限。
在 COMPLIANCE 模式中,受保护的对象版本不能被任何用户覆盖或删除,包括 AWS 帐户中的 root 用户。当对象以 COMPLIANCE 模式锁定时,无法更改其 RETENTION_MODE,并且无法缩短其保留周期。COMPLIANCE 模式有助于确保在期间内无法覆盖或删除对象版本。
使用保留时间将对象放在存储桶中:
语法
aws --endpoint=http://RGW_PORT:8080 s3api put-object --bucket BUCKET_NAME --object-lock-mode RETENTION_MODE --object-lock-retain-until-date "DATE" --key compliance-upload --body TEST_FILE
aws --endpoint=http://RGW_PORT:8080 s3api put-object --bucket BUCKET_NAME --object-lock-mode RETENTION_MODE --object-lock-retain-until-date "DATE" --key compliance-upload --body TEST_FILE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
aws --endpoint=http://rgw.ceph.com:8080 s3api put-object --bucket worm-bucket --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2022-05-31" --key compliance-upload --body test.dd
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object --bucket worm-bucket --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2022-05-31" --key compliance-upload --body test.dd { "ETag": "\"d560ea5652951637ba9c594d8e6ea8c1\"", "VersionId": "Nhhk5kRS6Yp6dZXVWpZZdRcpSpBKToD" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用同一键上传新对象:
语法
aws --endpoint=http://RGW_PORT:8080 s3api put-object --bucket BUCKET_NAME --object-lock-mode RETENTION_MODE --object-lock-retain-until-date "DATE" --key compliance-upload --body PATH
aws --endpoint=http://RGW_PORT:8080 s3api put-object --bucket BUCKET_NAME --object-lock-mode RETENTION_MODE --object-lock-retain-until-date "DATE" --key compliance-upload --body PATH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
aws --endpoint=http://rgw.ceph.com:8080 s3api put-object --bucket worm-bucket --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2022-05-31" --key compliance-upload --body /etc/fstab
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object --bucket worm-bucket --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2022-05-31" --key compliance-upload --body /etc/fstab { "ETag": "\"d560ea5652951637ba9c594d8e6ea8c1\"", "VersionId": "Nhhk5kRS6Yp6dZXVWpZZdRcpSpBKToD" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
命令行选项
在对象版本上设置对象锁定法律:
示例
aws --endpoint=http://rgw.ceph.com:8080 s3api put-object-legal-hold --bucket worm-bucket --key compliance-upload --legal-hold Status=ON
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object-legal-hold --bucket worm-bucket --key compliance-upload --legal-hold Status=ON
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意通过使用对象锁定法律保存操作,您可以将法律放置在对象版本上,从而防止对象版本被覆盖或删除。法律持有没有关联的保留期,因此在删除前仍有效。
列出存储桶中的对象,以仅检索对象的最新版本:
示例
aws --endpoint=http://rgw.ceph.com:8080 s3api list-objects --bucket worm-bucket
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api list-objects --bucket worm-bucket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出存储桶中的对象版本:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 version-ids 访问对象:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow