使用AWS Lambda函数设置触发器,该函数将在配置的时间间隔后处理删除。
创建一个Lambda函数,并将其配置为 S3 存储桶的触发器。此函数将运行以下代码示例,以删除在 x 天后最后修改的文件。
import boto3
from datetime import datetime, timezone, timedelta
# Set the time interval for file deletion
interval_days = 7
# Get S3 bucket and key from S3 event
def get_bucket_key(event):
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
return bucket, key
# Calculate the time delta between now and last modified time
def get_time_delta(event_time):
now = datetime.now(timezone.utc)
mod_time = datetime.strptime(event_time,'%Y-%m-%dT%H:%M:%S.%fZ').replace(tzinfo=timezone.utc)
delta = now - mod_time
return delta, now
# Delete the S3 object
def delete_object(bucket, key):
s3 = boto3.resource('s3')
obj = s3.Object(bucket, key)
obj.delete()
def lambda_handler(event, context):
bucket, key = get_bucket_key(event)
delta, now = get_time_delta(event['Records'][0]['eventTime'])
if delta > timedelta(days=interval_days):
delete_object(bucket, key)
print('File was deleted: s3://' + bucket + '/' + key)
else:
print('File was not deleted: s3://' + bucket + '/' + key + ', last modified ' + str(now - delta))
配置 Lambda 函数的基础设置、触发器、代码和权限。
将所需的桶名称和文件类型添加到 Lambda 函数中。
在 AWS S3 存储桶内上传文件,然后等待指定天数,Lambda 函数将自动删除最后修改的文件。
上一篇:AWSS3:在OBJECT_CREATED时触发的Lambda未列出新创建的对象
下一篇:AWSSageMaker-ModelQualityMonitor的statistics.json中所有指标为0.0,但多类别分类的混淆矩阵构建正确