如何使用JQ将S3路径拆分为存储桶、前缀与键?
用JQ拆分S3路径为存储桶、前缀和键
针对形如 s3://bucket/folder1/folder2/folder3/key.txt 的S3路径,你可以用以下JQ表达式直接拆分出存储桶(bucket)、前缀(prefix)和键(key):
.ltrimstr("s3://") | split("/") as $parts | { bucket: $parts[0], prefix: ($parts[1:-1] | join("/")), key: $parts[-1] }
示例测试
输入JSON:
"s3://bucket/folder1/folder2/folder3/key.txt"
执行JQ命令后输出:
{ "bucket": "bucket", "prefix": "folder1/folder2/folder3", "key": "key.txt" }
特殊场景说明
- 如果路径没有前缀(如
s3://bucket/key.txt),prefix会返回空字符串,符合S3路径规则 - 如果路径以斜杠结尾(如
s3://bucket/folder1/),key会返回空字符串,prefix为folder1
内容的提问来源于stack exchange,提问作者David Marciel
相关产品推荐
相关产品推荐

