我想在aws cli中使用一些命令来处理存储在s3 bucket中的大文件,而不将这些文件复制到本地目录(我熟悉cp命令,这不是我想要的)。
例如,假设我想使用一个简单的bash命令,如"head"或";more"。如果我试着像这样使用它:
head s3://bucketname/file.txt
然后我得到:
head: cannot open ' s3://bucketname/file.txt ' for reading: No such file or directory我该怎么做?
我还能怎么做呢?
提前感谢。
命令是否能够访问s3 bucket上的文件完全取决于该命令。在底层,每个命令都只是一个程序。当您运行类似head filename
的命令时,参数filename
作为参数传递给head命令的main()函数。您可以在这里查看源代码:https://github.com/coreutils/coreutils/blob/master/src/head.c
实际上,由于head命令不支持S3 uri,所以不能这样做。
- 将s3文件复制到stdout,然后将其管道到头:
aws s3 cp fileanme - | head
。如果文件对于管道缓冲区来说太大,这似乎不是一个可能的选择。 - 使用s3curl复制一段字节:如何使用cli 访问s3桶中的文件