是否可以限制S3存储桶中递归目录列表的深度?

时间:2019-01-24 21:17:14

标签: recursion amazon-s3 ls

我使用了以下命令:

aws s3 ls s3://mybucket/mydir --recursive > bigfile

生成的文件太大(9.5MB),无法方便地使用,因为我需要仔细查看所需的信息。

我真正需要的是将信息分为三个层次。是否可以调整此命令,以便我只递归递归N个级别,而不是递归递归每个目录?对于S3 CLI ls命令,我看不到-maxdepth之类的东西

更新:这是我最终用来获取所需信息的命令,尽管我对此不满意。当我只想要40个左右的唯一值时,它仍然给了我77000个结果,但是它足够短,可以移植到excel中,并用文本转栏缩小并删除重复项。

 aws s3 ls s3://mybucket/mydir --human-readable --summarize --recursive | egrep '*_keytext_*' | tr -s ' ' | cut -d' ' -f5 >smallerfile

2 个答案:

答案 0 :(得分:2)

尝试使用--exclude选项正则表达式匹配至少3个/字符

答案 1 :(得分:1)

Amazon S3没有“级别”的概念。它是一个平面存储系统,路径是对象名称(键)的一部分。但是,某些API调用支持指定Prefix的功能,该功能可以像在特定目录中一样进行操作。

使用aws s3 ls的另一种方法是使用Amazon S3 Inventory,它可以提供每天的CSV文件,其中列出了存储桶的内容。