如何在S3上获取文件的前100行?

Eli*_*ICA 4 amazon-s3

我在Amazon S3上有一个巨大的(~6 GB)文件,想要获得它的前100行,而不必下载整个东西.这可能吗?

这就是我现在正在做的事情:

aws cp s3://foo/bar - | head -n 100
Run Code Online (Sandbox Code Playgroud)

但这需要一段时间才能执行.我很困惑 - head一旦它读取了足够的行,就不应该关闭管道,导致aws cp在有时间下载整个文件之前使用BrokenPipeError崩溃?

Fré*_*nri 8

在GET请求中使用Range HTTP标头,您可以检索存储在Amazon S3中的对象中的特定字节范围.(见http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)

如果您使用aws cli,可以使用aws s3api get-object --range bytes=0-xxx,请参阅http://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html

它不完全是一些行,但应该允许您部分检索文件,以避免下载完整的对象