1

我正在使用TransferUitlty类将文件上传到S3。一切都很顺利,除了我暂停上传并恢复之后。该文件从开始上传,而不是从我暂停的位置上传。TransferUtility S3恢复不起作用

此恢复方法是专门用于重新启动上传还是从暂停的位置恢复?

即使在杀死应用程序后,我是否可以使用恢复方法恢复上传?

CODE:

private void uploadResume(int id,ProgressBar progress,File f,TextView filelength,ImageView updownststatus){ 
    if(sTransferUtility!=null){ 

     sTransferUtility.resume(id); 
     observer= sTransferUtility.getTransferById(id); 

     observer.setTransferListener(new UploadListener(progress, observer,f,filelength,updownststatus)); 
    } 
} 

回答

0

这是亚马逊S3的设计。如果是分段上传,您可以暂停并恢复上传。见S3 Multipart Upload Overview。假设您使用TransferUtility上传100Mb文件。该文件将被分成20个部分,每个5MB,并行上传。当3部分完成并且3部分正在处理时,您暂停上载。然后你再恢复。 TransferUtility将继续从5mb * 3 = 15mb上传,并有17个部件进行传输。这是因为每个部分都已完全上传,否则将被丢弃。

+0

如果零件没有完全上传,它会在恢复后重新启动。如果零件已完成,那么该零件将不会再次上载,其余零件将开始上传。如果暂停和恢复发生,间接进行的部分将不得不重新启动。我是否理解正确? – sandesh

+0

这是正确的。不完整的部分将从头开始重新启动。 – Yangfan

+0

是否有可能跟踪每个零件的状态?使用aws SDK? – sandesh