使用Boto在S3中读取文件的一部分

BMC*_*BMC 3 python cloud amazon-s3 boto python-2.7

我试图读取存储在S3中的700MB文件.我怎么只需要从位置73到1024的字节.

我试图找到一个可用的解决方案,但未能成功.如果有人可以帮助我,那将是一个很大的帮助.

Jos*_*idt 7

S3支持使用'Range'HTTP标头的GET请求,这是您所追求的.

要在boto中指定Range请求,只需添加一个标题字典,为您感兴趣的字节指定'Range'键.改编自Mitchell Garnaat的响应:

import boto
s3 = boto.connect_s3()
bucket = s3.lookup('mybucket')
key = bucket.lookup('mykey')
your_bytes = key.get_contents_as_string(headers={'Range' : 'bytes=73-1024'})
Run Code Online (Sandbox Code Playgroud)

  • 这可能是获取内容并保留带宽和内存使用量的最佳方式。需要小心获取的结果,并按照建议使用 get_contents_as_string。+1 (2认同)