我基于http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?HLuploadFileJava.html和http://示例代码实现了S3多部分上传,包括高级和低级版本docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?llJavaUploadFile.html
当我上传大小小于4 GB的文件时,上传过程完成没有任何问题。 当我上传一个13 GB的文件时,代码开始显示IOexception,pipe道破损。 重试后,仍然失败。
这是重复这种情况的方法。 拿1.1.7.1发布,
到目前为止,问题一直存在。 我在这里附上一个tcpdump文件供您比较。 在那里,S3侧的主机不断地重新设置sockets。
尽pipe这是c#代码,它显示了我用来成功复制文件高达15GB的超时和分区大小设置。 也许AutoCloseStream需要设置为false。
using (FileStream fileStream = File.OpenRead(file.FullName)) { TransferUtilityUploadRequest request = new TransferUtilityUploadRequest() { AutoCloseStream = false, Timeout = 1200000, BucketName = Settings.Bucket, Key = file.Name, InputStream = fileStream, PartSize = 6291456 // 6MB }; Console.Write("{0}...", file.Name); Begin(); tu.Upload(request); End(); Console.WriteLine("Done. [{0}]", Duration()); }