如何从本地计算机搜索存储在s3存储桶中的Json文件?

问题描述 投票:0回答:1

我在s3存储桶中存储了数千个json文件,并且需要对字符串“名称”执行grep搜索。

我已经配置了AWS CLI OK,因为我可以打印出存储桶中的所有文件(通过ls命令)。

我尝试了以下两个命令:

1)

aws s3 ls s3://training | grep 'name'

没有任何结果

2)

aws s3 cp s3://training/*json - | grep 'name'

这给出了错误:

下载失败:s3:// training / * json至-发生错误(404)调用HeadObject操作时:找不到

我知道字符串名称存在100%,因为它是在每个json中多次声明的字段名称

任何想法我在做什么错吗?

amazon-s3 grep command-line-interface
1个回答
0
投票

您的第一个示例失败,因为您正在列出对象,而不是打印出对象的内容。

您的第二个示例失败,因为您不能对S3请求使用通配符。

一种方法是在本地同步文件,然后grep本地文件,然后删除本地文件(或只是留在原处以优化将来的同步)。您可以使用aws s3 sync执行此操作。

另一种选择是使用Athena查询JSON内容。例如,您可以使用SQL查询。

另一种选择是将文档上载到S3时创建搜索索引。您可以触发Lambda函数,该函数读取对象内容并将其索引到另一个S3对象,DynamoDB表或什至Elasticsearch(如果这是一个重要的系统)中。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.