前缀与文件夹

在传统的 POSIX 系统中,您可能熟悉能够以传统方式读取和访问文件夹的数据访问功能。POSIX 的问题在于它从未真正设计用于处理网络上的超大型文件。基于 POSIX 的系统的速度会随着并发需求的增加而下降,此时它将无法扩展并满足这些需求。POSIX 文件权限也很原始,无法处理身份和管理策略。对文件的任何修改将不会显示,直到它被提交,因此当文件被并发访问时,用户将不会看到这些修改。当大型组织需要为深度学习、AI 和其他数据密集型用例存储和访问海量数据时,他们通常会寻找可扩展的数据存储,这些数据存储使用 RESTful API 概念,这些概念是他们习惯并喜欢的云的标志。
那么 MinIO 如何与众不同呢?为什么 MinIO 成为 AI 和 ML 工作负载的存储宠儿?如果我必须选择一句话,那就是:简单易用。开箱即用,MinIO 附带企业级功能,例如 对象级加密、版本控制 和 不变性 - 这些在 POSIX 世界中根本没有等效项,也没有任何东西能够将它们转换为等效项。MinIO 使用静止时和传输中的加密来保护对象,并结合 基于策略的访问控制 (PBAC) 来控制访问,以及 擦除编码 来保护数据完整性。无论您在何处运行 MinIO,您都将获得最佳的性能,因为它利用底层硬件来提供最大的性能。
为了实现这种性能、可扩展性和功能丰富性,MinIO 以独特的方式存储对象,让我们深入了解一下。
那么它是前缀还是文件夹呢?
在 MinIO 对象存储领域,所有内容都存储在一个扁平的结构中。这样做的原因是 POSIX 文件系统的层次结构是其 缺点 之一。MinIO 通过保持所有内容扁平来摆脱它。但我们大多数使用非云原生应用程序的用户都习惯了使用结构,主要是文件夹,来组织放在其中的数据。
因此,为了满足所有人的需求,MinIO 使用“文件夹”作为一种方法来组织放在其中的对象。文件夹不过是结尾带有斜杠的 object_name/
对象。它没有大小、没有内容,也没有任何类型的元数据显示。它只是一种将对象合理地分组在一起的方法,以便用户知道他们的对象位于何处。
那么,什么是前缀呢?一串文件夹构成了前缀(有时称为路径)。当您将前缀(文件夹串)和对象名称组合在一起时,它就构成了对象键。这可以通过一个示例来最好地说明。
假设您有以下对象
您看到的第一个“文件夹” myminio/
实际上是别名,您可以使用以下命令添加。
因此,如果您有另一个 MinIO 集群,您可以添加另一个别名,如下所示
存储桶名称是 vacation-photos/
。所有对象实际上都存储在此处。在存储桶内,可以创建文件夹来组织数据。在上面的示例中,cancun/2024/
是存储对象 my-hotel.jpg
、my-car.jpg
和 my-boat.jpg
的文件夹。
当您将 别名 + 存储桶名称 + 文件夹
组合在一起时,它就构成了前缀 myminio/vacation-photos/2024/cancun/
,其中可以存储多个对象。当您添加对象名称 my-hotel.jpg
时,整个字符串就构成了键,如下所示 myminio/vacation-photos/2024/cancun/my-hotel.jpg
。
在内部,MinIO 会将任何以 /
结尾的对象作为文件夹类型对象,您可以添加更多以 /
结尾的对象,例如 2024/
、2023/
等。但请注意,您不能在存储桶内有存储桶。例如,在 vacation-photos/
内,您不能有 myotherbucket/
,如下所示。您不会在 MinIO 中将其列为存储桶。
它需要像这样:
那么您是否理解了构成前缀的前缀和构成文件夹的文件夹以及对象在 MinIO 领域中的对象之间的区别?
测验!!!
我知道,我也讨厌高中时的这些测验,但相信我,如果我上面解释得很好,这个测验要容易得多。所以您在这个测验中表现好坏取决于我。
每个问题的答案都在与页面背景色匹配的文本中。如果您突出显示每个问题下面的内容,您将看到答案。尝试看看您能正确回答多少个问题。
注意:如果突出显示不起作用,请将下面的全部内容复制到文本类型的记事本中,以显示答案。
假设您有一个存储桶,其中只有一个对象位于以下位置
- 哪个是前缀?
- 哪个是别名?
- 哪个是存储桶名称?
- 哪个是对象名称?
- 对象位于哪个文件夹中?
- 哪个是键名?
- 存储桶总共有多少个文件夹?它们叫什么名字?
- 您可以在文件夹中创建多少个文件夹?
- 您可以在存储桶中创建多少个存储桶?
您在不突出显示的情况下答对了多少个问题?我希望是所有问题都答对了。
我听说你喜欢 POSIX
如您所见,文件夹、前缀和路径本质上是一种在 MinIO 内部组织对象的方法。它是一个文件夹类型对象的结构,当您想要查看对象时,它可以让您了解数据的位置。此外,这些文件夹和前缀可以用于创建 IAM 规则和策略,以确保您不会为每个对象重复角色,并且可以将设置一次性应用于一大片前缀。
如果您对前缀或文件夹有任何疑问,请务必通过 Slack 与我们联系!或通过电子邮件发送至 hello@min.io。