python - 使用 python 从 S3 获取最新文件并仅推送最新的日志文件
问题描述
在这种情况下,忽略旧文件并使用 Logstash使用 Logstash 从 S3 推送最新的日志文件,但我的 Logstash 旧版本没有忽略旧设置
我尝试使用 sincedb 但不起作用 [超过 100 万个文件] 大约需要 2 - 3 个小时才能找到最新文件
现在正在寻找出路
下载所有文件并将其存储到本地
从名称中缩短日期
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) ```
解决方案
推荐阅读
- azure - jar 的物理位置在哪里?
- database - 在 DynamoDB 中为给定表选择哈希键和排序键的有效方法是什么?
- sql - R:(SQL 风格)%LIKE% 语句
- api - 用于获取搜索常见问题的 API
- django - 从数据库查询时如何使用 2 个过滤器,并显示来自两个过滤器 id Django 的项目
- laravel - 如何在 Laravel 的其他 Vue/Vuetify 组件中嵌入 Vue/Vuetify 组件?
- c# - 如何用 c# 填充 .xlsm 工作表
- linux - 如何同时运行一批进程,并在一个完成时启动新进程?
- c++ - 按函数名称列出的关键字的编译时列表
- javascript - 我有一个用户输入坐标的列表,我如何计算尽可能接近所有坐标的点?