Amazon web services 前缀在S3中是什么意思

Amazon web services 前缀在S3中是什么意思,amazon-web-services,amazon-s3,aws-sdk,Amazon Web Services,Amazon S3,Aws Sdk,他说, 例如,您的应用程序在bucket中每个前缀每秒至少可以实现3500个PUT/COPY/POST/DELETE和5500个GET/HEAD请求。bucket中前缀的数量没有限制。您可以通过并行读取来提高读写性能。例如,如果在AmazonS3存储桶中创建10个前缀来并行读取,则可以将读取性能扩展到每秒55000个读取请求 但是,它没有明确提到前缀的概念 例如 假设我有3个文件,它们对应的键是: a/a1.txt b/b1.txt 2.txt 根据我的理解,S3中没有文件夹的概念。因此,S3

他说,

例如,您的应用程序在bucket中每个前缀每秒至少可以实现3500个PUT/COPY/POST/DELETE和5500个GET/HEAD请求。bucket中前缀的数量没有限制。您可以通过并行读取来提高读写性能。例如,如果在AmazonS3存储桶中创建10个前缀来并行读取,则可以将读取性能扩展到每秒55000个读取请求

但是,它没有明确提到前缀的概念

例如

假设我有3个文件,它们对应的键是:

a/a1.txt
b/b1.txt
2.txt
根据我的理解,S3中没有文件夹的概念。因此,S3将在我的bucket上创建类似的内容

|- a/
|- a1.txt
|- 2.txt
|- b/
|- b1.txt
我确实遇到了这个问题,但这让我更加困惑

我的问题是:-

在S3中创建的每个以“/”结尾的对象都是前缀吗?
换句话说,我们在S3 web控制台中看到的每个文件夹都是前缀吗?

虽然S3理论上是一个平面存储,但它的许多操作对前缀都有特殊的处理,并带有一个设置的分隔符,通常是
/
。例如,讨论如何通过查看您使用的前缀来构建S3控制台web界面上的“文件夹”

这里需要记住的一点是,这些文件夹本身不是对象,因此在您的示例中,bucket中没有存储
a
b

如果您创建一个bucket并立即添加一个键为
a/b/c/d/e.txt
的对象,则:

  • bucket将只包含一个对象,键为
    a/b/c/d/e.txt
  • 一些API和UI将为
    a/b/c/d
    的键推断前缀,作为对相关键进行分组的一种方式

因此,有两种方法可以创建S3前缀,一种是隐式创建,就像您上面提到的,另一种是当我们显式创建一个S3对象时,该对象的键设置为以分隔符结尾?@nmxl我认为对于以分隔符结尾的名称没有任何特殊处理。对于任何将前缀视为文件夹的UI,这就像创建一个名称为空的文件(即其中可能包含数据),而不是创建一个空文件夹,因此可能会破坏UI。