AWS S3 生命周期规则会删除文件夹吗?

Gre*_*ech 5 amazon-s3 amazon-web-services

我有一个包含多个文件夹的 S3 存储桶,每个文件夹包含多个文件。由于文件数量不断增加,我正在考虑创建一个 S3 生命周期规则来删除超过 14 天的文件。

我担心的是,如果文件夹为空,此规则也可能会删除该文件夹。是这种情况还是这条规则只会删除文件/对象?

谢谢。

cee*_*yoz 7

http://docs.aws.amazon.com/AmazonS3/latest/UG/FolderOperations.html

Amazon S3 具有扁平结构,没有您在典型文件系统中看到的层次结构。但是,为了组织简单起见,Amazon S3 控制台支持将文件夹概念作为对对象进行分组的一种方式。Amazon S3 通过为对象使用键名前缀来实现这一点。

换句话说,S3 上实际上并不存在文件夹。

  • 从技术上讲,*看起来像*“空文件夹”的东西可以存在(但没有实际意义)……如果您在控制台中手动创建一个名为“foo”的“文件夹”,您实际所做的是创建一个带有键 `foo/` 的零字节占位符对象,控制台将使用它来显示(最初)“空文件夹”。如果生命周期规则导致它被删除,这没有关系,因为只要有任何名为 `foo/*` 的对象,文件夹错觉仍然存在。如果以后删除所有这些对象,“文件夹”将消失,但如果再次创建名为“foo/*”的文件,则会重新出现。 (3认同)
  • 我知道这一点,但为了简单起见,我使用了“文件夹”一词。问题是,如果一个对象(“文件夹”)早于生命周期规则,但其中包含其他对象,那么该对象“文件夹”是否会被删除?如果是这样,这也会删除不早于生命周期的其他对象,但它们是该“文件夹”内的分组对象。如果不使用“文件夹”这个词,我很难解释这一点。 (2认同)
  • 我的观点是该文件夹实际上并不存在。这只是控制台的虚假概念。S3 的实际工作方式并不涉及文件夹——它只是一个对象存储。`foo/bar/something.jpg` 和 `foo/bar/something-else.jpg` 在 S3 上绝对没有相互关联。`foo/` 和 `foo/bar/` 根本不存在。**“空”文件夹不存在。** 控制台中的文件夹仅表示控制台在您的对象名称中看到了一些 `/` 字符。 (2认同)