0
我使用以下代碼將文件上傳到Dropbox。Dropbox.Api無法上傳大文件
我使用的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;
}
}
}
喜彼得,謝謝。它的工作。我必須添加以下行作爲第二行config.HttpClient = new System.Net.Http.HttpClient();因爲HttpClient obj爲null。 – VivekDev
Dropbox API的任何部分是否提供了構造新HttpClient的工廠方法?我遇到了與@VivekDev相同的問題,但我不確定調用新的HttpClient()是否缺少Dropbox API在內部創建對象時可能會調用的其他一些配置步驟。 – Jono
@Jono沒有工廠方法,如果你不會配置提供Web客戶端,默認的將被使用https://github.com/dropbox/dropbox-sdk-dotnet/blob/28233d643ddc65660c565d2c23bed46cdd6af84a/Dropbox.Api/DropboxRequestHandler.cs#L57 –