1

我正在使用 TransferUitlty 类将文件上传到 S3。一切都很好,除了在我暂停上传并恢复它之后。该文件是从头上传,而不是从我暂停的地方上传。

这种恢复方法是为重新启动上传还是从暂停的地方恢复而设计的?

我可以在杀死应用程序后使用 resume 方法恢复上传吗?

代码:

    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));
    }
}
4

2 回答 2

0

这是 Amazon S3 的设计。如果是分段上传,您可以暂停和恢复上传。请参阅 S3分段上传概述。假设您使用 TransferUtility 上传了一个 100Mb 的文件。该文件将分为 20 个部分,每个 5mb,并行上传。当 3 个部分完成且 3 个正在进行中时,您暂停上传。你稍后再恢复它。TransferUtility 将从 5mb * 3 = 15mb 继续上传,它有 17 个部分要传输。那是因为每个部分都已完全上传,否则将被丢弃。

于 2016-05-16T19:07:35.110 回答
0

对不起,如果我试图偏离主题,所以我的回答基本上是文件下载。

所以我试图从 Amazon S3 下载资源。我使用转移观察者来了解转移的状态。我能够暂停下载并监控它的状态。但是,即使尝试使用 transferUtility.resume(transferId),我也无法恢复下载。但后来我尝试了 transferObserver.refresh() 并且我能够恢复我的文件的下载。

于 2018-11-23T14:37:40.923 回答