在 S3 中自动创建文件夹
Automating folder creation in S3
我有一个 S3 存储桶,客户每个月都会将数据文件(CSV 文件)放入其中。我想知道有一种方法可以让我在每次每月删除文件时自动创建一个新的“文件夹”(对象),并将最新的文件放入该“文件夹”中。我需要按月分隔的 CSV 文件,以便 AWS Glue 可以在我在此存储桶上 运行 增量爬虫时创建新分区。
例如,假设我有一个名为“客户端”的 S3 存储桶。 12 月 1 日,一个新的 CSV 文件(“DecClientData”)将被放入该“客户端”存储桶中。我想知道是否有办法将以下两个过程自动化:
- 在“client”中创建一个“文件夹”(我们称之为“dec”)。
- 将“DecClientData”文件放在“dec”“文件夹”中。
在此先感谢您提供的任何帮助!
编写一个 AWS Lambda 函数在 client 存储桶中创建一个文件夹,并将最新的 .csv 文件(或文件)移动到新文件夹中。
然后,通过事件通知设置配置 客户端 S3 存储桶以在新上传时触发 AWS Lambda 函数。
S3 没有文件系统中常见的文件夹概念,而是具有扁平结构,更多细节可以found here。
相反,对象的完整路径存储在其键(文件名)中。例如,无论是否存在 files
和 2020-12
目录(它们不是真正的目录,而是零长度对象),都可以使用 files/2020-12/data.txt
的 Key 将对象存储在 Amazon S3 中。
在你的情况下,要解决你提到的两点,你应该利用 S3 event notifications and use them as a Lambda Trigger。当 Lambda 函数被触发时,它被传递给对象的名称 (Key) 作为参数,此时您可以简单地更改它的 Key。
即对象在 s3://my_bucket/uploads/file.txt
中上传,这会创建触发 Lambda 函数的事件通知。函数获取对象并将其重新上传到 s3://my_bucket/files/dec/file.txt
(并删除原始对象)。
我有一个 S3 存储桶,客户每个月都会将数据文件(CSV 文件)放入其中。我想知道有一种方法可以让我在每次每月删除文件时自动创建一个新的“文件夹”(对象),并将最新的文件放入该“文件夹”中。我需要按月分隔的 CSV 文件,以便 AWS Glue 可以在我在此存储桶上 运行 增量爬虫时创建新分区。
例如,假设我有一个名为“客户端”的 S3 存储桶。 12 月 1 日,一个新的 CSV 文件(“DecClientData”)将被放入该“客户端”存储桶中。我想知道是否有办法将以下两个过程自动化:
- 在“client”中创建一个“文件夹”(我们称之为“dec”)。
- 将“DecClientData”文件放在“dec”“文件夹”中。
在此先感谢您提供的任何帮助!
编写一个 AWS Lambda 函数在 client 存储桶中创建一个文件夹,并将最新的 .csv 文件(或文件)移动到新文件夹中。
然后,通过事件通知设置配置 客户端 S3 存储桶以在新上传时触发 AWS Lambda 函数。
S3 没有文件系统中常见的文件夹概念,而是具有扁平结构,更多细节可以found here。
相反,对象的完整路径存储在其键(文件名)中。例如,无论是否存在 files
和 2020-12
目录(它们不是真正的目录,而是零长度对象),都可以使用 files/2020-12/data.txt
的 Key 将对象存储在 Amazon S3 中。
在你的情况下,要解决你提到的两点,你应该利用 S3 event notifications and use them as a Lambda Trigger。当 Lambda 函数被触发时,它被传递给对象的名称 (Key) 作为参数,此时您可以简单地更改它的 Key。
即对象在 s3://my_bucket/uploads/file.txt
中上传,这会创建触发 Lambda 函数的事件通知。函数获取对象并将其重新上传到 s3://my_bucket/files/dec/file.txt
(并删除原始对象)。