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

时间:2016-08-31 20:19:28

标签: amazon-s3

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

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

aws cp s3://foo/bar - | head -n 100

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

1 个答案:

答案 0 :(得分:7)

在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

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