从超时时间恢复" aws s3api get-object"请求

时间:2017-04-04 15:44:19

标签: amazon-web-services amazon-s3 aws-cli

我尝试通过以下命令下载一些spacenet data(23 GB):

aws s3api get-object --bucket spacenet-dataset --key AOI_2_Vegas/AOI_2_Vegas_Train.tar.gz --request-payer requester AOI_2_Vegas_Train.tar.gz

我的默认区域是us-east-1,我知道我的密钥是正确的,因为帐户正在收费。

我在家中运行(30 mbps),大约12 GB后超时。

我在我的工作中运行了这个(200 mbps),它在大约16 GB之后超时。

这是错误:

  

HTTPSConnectionPool(host =' spacenet-dataset.s3.amazonaws.com',port = 443):读取超时。

有没有办法恢复" aws s3api get-object"请求已超时?

2 个答案:

答案 0 :(得分:1)

我可能会尝试使用aws s3 cp命令。此命令更高级,可以自动处理多部分传输。

此命令也可以采用几个可添加的选项。见http://docs.aws.amazon.com/cli/latest/topic/s3-config.html

特别针对您的工作,您可以增加max_concurrent_requestsmultipart_threshold,例如,配置如下

$ aws configure set default.s3.max_concurrent_requests 25
$ aws configure set default.s3.multipart_threshold 128MB
$ aws configure set default.s3.multipart_chunksize 32MB
$ aws configure set default.s3.use_accelerate_endpoint true

并运行复制命令。

答案 1 :(得分:0)

可以下载对象的指定字节范围。这可以通过使用范围标志来完成,如下所示。

aws s3api get-object --bucket spacenet-dataset --key AOI_2_Vegas/AOI_2_Vegas_Train.tar.gz --request-payer requester --range bytes=0-99999 file_1.tar.gz

上面的命令下载23 GB文件的前100,000个字节并将其写入file_1.tar.gz

一旦下载了字节范围内的所有file_*.tar.gz,它们就必须以正确的顺序连接起来。可以使用* nix cat命令完成,如下所示。

cat file_1.tar.gz >> AOI_2_Vegas_Train_all.tar.gz
cat file_2.tar.gz >> AOI_2_Vegas_Train_all.tar.gz

查看this out了解详情。