Warm tip: This article is reproduced from serverfault.com, please click

amazon web services-在S3中自动创建文件夹

(amazon web services - Automating folder creation in S3)

发布于 2020-11-28 20:07:31

我有一个S3存储桶,每个月客户端会将数据文件(CSV文件)放入其中。我想知道是否有一种方法,可以使每个月每次删除文件时都自动创建一个新的“文件夹”(对象),并将最新文件放入该“文件夹”中。我需要按月分隔的CSV文件,以便当我在此存储桶上运行增量搜寻器时,AWS Glue可以创建新分区。

例如,假设我有一个名为“客户端”的S3存储桶。12月1日,新的CSV文件(“ DecClientData”)将被放入该“客户端”存储桶中。我想知道是否有一种方法可以自动化以下两个过程:

  1. 在“客户端”中创建一个“文件夹”(我们称其为“ dec”)。
  2. 将“ DecClientData”文件放在“ dec”“文件夹”中。

在此先感谢你提供的任何帮助!

Questioner
learner
Viewed
0
Andre.IDK 2020-11-29 06:17:27

S3没有文件系统中常见的文件夹概念,而是具有扁平结构,可以在此处找到更多详细信息

而是,对象的完整路径存储在其键(文件名)中。例如,files/2020-12/data.txt无论是否存在files2020-12目录,都可以使用Key将对象存储在Amazon S3中(它们不是真正的目录,而是零长度的对象)。

在你的情况下,要解决你提到的两点,你应该利用S3事件通知并将它们用作Lambda触发器触发Lambda函数时,会将对象的名称(键)作为参数传递给你,此时,你只需更改其键即可。

即对象上传到中s3://my_bucket/uploads/file.txt,这将创建事件通知,该事件触发Lambda函数。函数获取对象并将其重新上传到s3://my_bucket/files/dec/file.txt(并删除原始对象)。