首页 > 解决方案 > 使用 python 从 S3 获取最新文件并仅推送最新的日志文件

问题描述

在这种情况下,忽略旧文件并使用 Logstash使用 Logstash 从 S3 推送最新的日志文件,但我的 Logstash 旧版本没有忽略旧设置

我尝试使用 sincedb 但不起作用 [超过 100 万个文件] 大约需要 2 - 3 个小时才能找到最新文件

现在正在寻找出路

  1. 下载所有文件并将其存储到本地

  2. 从名称中缩短日期xxxx_CloudTrail-Digest_ap-southeast-1_xxx-cloudtrail_ap-southeast-1_20210809T034717Z.json.gz以获取日期和时间

现在,我不知道下一步该做什么。

这是我的初学者 python 代码

import os
import datetime
import glob
import os
from pathlib import Path

s3 = boto3.resource('s3')

bucket = s3.Bucket('bucket')

key = 'AWSlogs/xxxxxxxxxxxx/Cloudtrail-Digest/ap-southeast-a/%Y/%M'
objs = list(bucket.objects.filter(Prefix=key))

for obj in objs:
    obj_path = os.path.dirname(obj.key)
    Path(obj_path).mkdir(parents=True, exist_ok=True)
    bucket.download_file(obj.key, obj.key)

list_of_files = glob.glob('/path/to/folder/*')
latest_file = max(list_of_files, key=os.path.getctime) ```

标签: pythonamazon-s3loggingboto3

解决方案


推荐阅读