【问题标题】:How can I search Json files stored in my s3 bucket from my local computer?如何从本地计算机搜索存储在 s3 存储桶中的 Json 文件?
【发布时间】:2020-03-27 01:14:55
【问题描述】:

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

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

我已经尝试了以下 2 个命令:

1)

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

这没有任何结果

2)

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

这给出了错误:

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

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

任何想法我做错了什么?

【问题讨论】:

    标签: amazon-s3 grep command-line-interface


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-11
      • 1970-01-01
      • 2018-06-07
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 2023-03-22
      相关资源
      最近更新 更多