是否可以根据对象大小删除 AWS S3 对象
Is it Possible to Delete AWS S3 Objects Based on Object Size
我似乎没有找到任何关于根据对象大小删除 S3 对象的文档。例如,如果对象大小小于 5B,则将其删除。
是的,可以根据大小删除 S3 对象。
一种解决方法是通过 AWS CLI(您可以使用 cli 或 boto3)获取 S3 存储桶的对象大小并执行 cron 作业,该作业将在 true 如果对象大小小于 5B.
DeleteObject()
API 调用不接受 Size 或 ModifiedDate 等参数。
相反,您必须提供要删除的对象列表。
如果您希望根据大小删除对象,典型模式为:
- 调用
ListObjets()
获取存储桶中的对象列表(以及可选的给定前缀)
- 在您的代码中,遍历返回的信息并举例说明对象大小。如果大小比预期的 smaller/larger,请将
Key
(文件名)添加到数组
- 调用
DeteleObject()
,传递要删除的Keys数组
根据您的评论,如果对象小于给定大小,您似乎希望在对象创建后立即将其删除。
为此,您需要:
- 创建一个 AWS Lambda 函数
- 配置 S3 存储桶以在创建对象时触发 Lambda 函数
Lambda 函数将传递 was/were 刚刚创建的对象的 Bucket 和 Key。然后它可以调用 HeadObject
来获取对象的大小。如果它小于所需的大小,则可以调用 DeleteObject
。确保循环遍历所有传入的记录,因为可以使用多个输入对象调用一个 Lambda 函数。
如果您有 个现有对象,您希望对其执行此操作,并且由于您提到“有超过 100 万个对象”,您可以使用 Amazon S3 Inventory,它可以提供每日或每周的 CSV 文件,列出所有对象,包括它们的大小。您可以编写一个程序,使用此文件作为输入并调用 DeleteObjects
一次最多删除 1000 个对象。
我似乎没有找到任何关于根据对象大小删除 S3 对象的文档。例如,如果对象大小小于 5B,则将其删除。
是的,可以根据大小删除 S3 对象。
一种解决方法是通过 AWS CLI(您可以使用 cli 或 boto3)获取 S3 存储桶的对象大小并执行 cron 作业,该作业将在 true 如果对象大小小于 5B.
DeleteObject()
API 调用不接受 Size 或 ModifiedDate 等参数。
相反,您必须提供要删除的对象列表。
如果您希望根据大小删除对象,典型模式为:
- 调用
ListObjets()
获取存储桶中的对象列表(以及可选的给定前缀) - 在您的代码中,遍历返回的信息并举例说明对象大小。如果大小比预期的 smaller/larger,请将
Key
(文件名)添加到数组 - 调用
DeteleObject()
,传递要删除的Keys数组
根据您的评论,如果对象小于给定大小,您似乎希望在对象创建后立即将其删除。
为此,您需要:
- 创建一个 AWS Lambda 函数
- 配置 S3 存储桶以在创建对象时触发 Lambda 函数
Lambda 函数将传递 was/were 刚刚创建的对象的 Bucket 和 Key。然后它可以调用 HeadObject
来获取对象的大小。如果它小于所需的大小,则可以调用 DeleteObject
。确保循环遍历所有传入的记录,因为可以使用多个输入对象调用一个 Lambda 函数。
如果您有 个现有对象,您希望对其执行此操作,并且由于您提到“有超过 100 万个对象”,您可以使用 Amazon S3 Inventory,它可以提供每日或每周的 CSV 文件,列出所有对象,包括它们的大小。您可以编写一个程序,使用此文件作为输入并调用 DeleteObjects
一次最多删除 1000 个对象。