Dropbox.Api无法上传大文件

时间:2016-11-09 08:49:53

标签: c# task-parallel-library dropbox-api

我使用以下代码将文件上传到dropbox。

我正在使用nuget包Dropbox.Api并获取异常System.Threading.Tasks.TaskCanceledException("任务被取消。")

SO Question开始,这似乎是一个超时问题。

那么如何修改以下代码来设置超时。

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

2 个答案:

答案 0 :(得分:6)

尝试创建和初始化客户端,如下所示:

 FontFamily="Segoe UI" FontSize="12"

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

答案 1 :(得分:0)

要记住的另一件事是,根据文档,UploadAsync对于大于150MB的文件将不起作用。人们将不得不使用基于UploadSessionStartAsync的实现。我犯了个错误却没有意识到,我花了很长时间才找出问题所在。