Dropbox.Api 上传大文件失败

Dropbox.Api failing to upload large files

我正在使用以下代码将文件上传到保管箱。

我正在使用 nuget 包 Dropbox.Api 并收到异常 System.Threading.Tasks.TaskCanceledException("A task was canceled.")

由此 看来是超时问题。

那么我该如何修改下面的代码来设置超时呢

    public async Task<FileMetadata> UploadFileToDropBox(string fileToUpload, string folder)
    {
        DropboxClient client = new DropboxClient(GetAccessToken());

        using (var mem = new MemoryStream(File.ReadAllBytes(fileToUpload)))
        {
            string filename = Path.GetFileName(fileToUpload);

            try
            {
                string megapath = GetFullFolderPath(folder);
                string megapathWithFile = Path.Combine(megapath, Path.GetFileName(Path.GetFileName(filename))).Replace("\", "/");
                var updated = client.Files.UploadAsync(megapathWithFile, WriteMode.Overwrite.Instance, body: mem);
                await updated;
                return updated.Result;
            }
            catch (Exception ex)
            {
                return null;
            }
        }
    }

尝试像这样创建和初始化客户端:

var config = new DropboxClientConfig();
config.HttpClient.Timeout = new TimeSpan(hr, min, sec); // choose values
var client = DropboxClient(GetAccessToken(), config);

参考:
http://dropbox.github.io/dropbox-sdk-dotnet/html/M_Dropbox_Api_DropboxClient__ctor_1.htm

还有一件事要记住,根据文档,UploadAsync 不适用于大于 150MB 的文件。人们将不得不为此使用基于 UploadSessionStartAsync 的实现。我在没有意识到的情况下犯了错误,我花了很长时间才找出问题。