gpt4 book ai didi

c# - S3 分段上传 : how can I cancel one?

转载 作者:太空狗 更新时间:2023-10-29 21:28:22 26 4
gpt4 key购买 nike

我需要取消使用

启动的正在进行的下载
fileTransferUtility = new TransferUtility(/*...*/);
var uploadRequest = new TransferUtilityUploadRequest() /* config parameters... */
fileTransferUtility.BeginUpload(uploadRequest, new AsyncCallback(uploadComplete), file);

我已经搜索过 SO 和文档,但找不到方法...

基本原理:用户可以选择要上传的文件,并且可以选择非常大的文件,比如 1GB。我需要能够取消它。

在最坏的情况下,我可以尝试完全终止线程,或者以不干净的方式关闭上传,但是怎么做呢???

谢谢!

最佳答案

我收到了 official answer from Amazon对此。这是他们的回复:

var fileTransferUtility = new TransferUtility(/* */);
var uploadRequest = new TransferUtilityUploadRequest();

Thread thread = new Thread(() => fileTransferUtility.Upload(uploadRequest));
Thread.Sleep(5000); // If not done in 5 seconds abort
if(thread.IsAlive)
thread.Abort();

而不是使用 BeginUpload/EndUpload 调用,您需要使用包装在线程中的 Upload 调用,并堆放对此的引用线程。

如果用户需要取消,在线程上调用Abort(),这将取消上传。当然,您需要清理部分上传的文件(他们会为此收费!)。

正如我所怀疑的:非常简单直观,但并不那么容易找到:)

关于c# - S3 分段上传 : how can I cancel one?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16485629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com