我正在尝试使用Java中的多部分上传低级API方法将.bak文件(24gb)上传到amazon s3。我能够成功写入文件但是花费的时间大约是7-8小时。我想知道上传这么大的文件的平均/理想时间是多少,是预期的时间还是可以改进的?如果有改进的余地而不是方法?
答案 0 :(得分:0)
如果您使用的是传输管理器的默认设置,那么对于分段上传,DEFAULT_MINIMUM_UPLOAD_PART_SIZE为5MB,对于24GB文件而言太低。这实际上意味着你最终将成千上万的小部分上传到s3。由于每个部分都由不同的工作线程上传,因此您的应用程序将在网络通信中花费太多时间。这不会为您提供最佳的上传速度。
您必须将最小上传部件大小增加到100MB到500 MB之间。使用此设置:setMinimumUploadPartSize
设置MinimumUploadPartSize的官方文档:
减小最小零件尺寸将导致分段上传分成更多的小零件。将此值设置得太低会对传输速度产生负面影响,因为这会导致每个部分的额外延迟和网络通信。
如果您当前正在使用默认设置,我确定您可以通过调整此设置来看到上传吞吐量有所改善。如果这样可以提高吞吐量,请告诉我。
快乐上传!!!