CrazyRabbit Asked: 2021-02-14 03:45:27 +0800 CST2021-02-14 03:45:27 +0800 CST 2021-02-14 03:45:27 +0800 CST OpenStack SWIFT 中容器 _segments 的作用是什么? 772 jobs几个月前我创建了一个名为的容器,今天我看到另一个容器命名为jobs_segments容纳数 GB 的数据。 我读过它是为了在进行分段 SWIFT 上传时保存各个部分而创建的。 问题是: 分段上传完成后,是否可以或应该删除该容器或其中的文件? 是否有任何选择可以避免使用第二个容器_segments并仅在主要容器上工作jobs? openstack swift 2 个回答 Voted Best Answer berndbausch 2021-02-14T04:16:51+08:002021-02-14T04:16:51+08:00 命名的容器SOMETHING_segments可能是大对象上传的产物。“大对象”这个词有点误导。“分段对象”会更具描述性,但此功能主要用于存储大型对象,特别是大于 5GB 的对象大小限制。 由于您的容器名为jobs_segments,我通常会假设它包含名为的对象jobs的数据,而不是具有此名称的容器。但是,没有什么能阻止您创建与对象同名的容器。 回答第一个问题:如果你 delete jobs_segments,你会丢失jobs对象的数据。最好删除jobs对象,而不是只删除它的段。 第二个问题:jobs容器与jobs_segments. 说了这么多,您可以创建一个容器SOMETHING_segments并将其用于大型对象以外的其他用途。最后,jobs_segments可能是一个普通的容器。 Arnold Obdeijn 2022-06-24T04:39:50+08:002022-06-24T04:39:50+08:00 来自 Openstack Swift 文档: swift 命令对其分段对象支持使用严格的约定。在上面的示例中,它将所有分段上传到名为 test_container_segments 的第二个容器中。这些段将具有诸如 large_file/1290206778.25/21474836480/00000000、large_file/1290206778.25/21474836480/00000001 等名称。 使用单独容器的主要好处是主容器列表不会被所有段名称污染。使用 /// 的段名称格式的原因是,在更新清单文件的最后一刻之前,上传具有相同名称的新文件不会覆盖第一个文件的内容。 swift 将为您管理这些段文件,在删除和覆盖时删除旧段等。如果需要,您可以使用 --leave-segments 选项覆盖此行为;如果您想拥有同一个大对象的多个版本,这很有用。 见https://docs.openstack.org/swift/latest/overview_large_objects.html
命名的容器
SOMETHING_segments
可能是大对象上传的产物。“大对象”这个词有点误导。“分段对象”会更具描述性,但此功能主要用于存储大型对象,特别是大于 5GB 的对象大小限制。由于您的容器名为
jobs_segments
,我通常会假设它包含名为的对象jobs
的数据,而不是具有此名称的容器。但是,没有什么能阻止您创建与对象同名的容器。回答第一个问题:如果你 delete
jobs_segments
,你会丢失jobs
对象的数据。最好删除jobs
对象,而不是只删除它的段。第二个问题:
jobs
容器与jobs_segments
.说了这么多,您可以创建一个容器
SOMETHING_segments
并将其用于大型对象以外的其他用途。最后,jobs_segments
可能是一个普通的容器。来自 Openstack Swift 文档:
见https://docs.openstack.org/swift/latest/overview_large_objects.html