2
试图在AWS Lamba中处理大文件并跳过整个文件看起来有点浪费。 是否有“范围读取”功能,允许从S3文件中只读取预定义的字节范围?是否有“S3范围读取功能”,允许从AWS-S3文件读取指定的字节范围?
试图在AWS Lamba中处理大文件并跳过整个文件看起来有点浪费。 是否有“范围读取”功能,允许从S3文件中只读取预定义的字节范围?是否有“S3范围读取功能”,允许从AWS-S3文件读取指定的字节范围?
是的,这是可能的。根据REST API中的GET Object的S3文档,它支持使用HTTP范围头。
范围
下载的对象的指定范围的字节。有关HTTP Range标题的更多信息,请转至http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35。
在该示例语法:
GET /ObjectName HTTP/1.1
Host: BucketName.s3.amazonaws.com
Date: date
Authorization: authorization string (see Authenticating Requests (AWS Signature Version 4))
Range:bytes=byte_range
热门S3客户端库,如AWS SDK for Java用于指定的范围的信息提供方便客户端API。
我看遍了,这是不可能的?你知道它是否最近添加? – olekb
@olekb,我不确定何时添加它,但我知道至少从2016年初开始可用。我的经验是在['S3AInputStream'](https://github.com/)中的Apache Hadoop中使用它apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AInputStream.java#L154-L155)类。 –