#c# #api #upload #dropbox
#c# #API #загрузка #dropbox
Вопрос:
Мой код для загрузки файла в Dropbox очень прост… но он никогда не возвращается из вызова UploadAsync… файл на самом деле отлично заканчивается в Dropbox, но он никогда не возвращается из вызова функции… есть идеи, что я могу делать неправильно?
using Dropbox.Api;
using Dropbox.Api.Files;
using System;
using System.IO;
using System.Threading.Tasks;
namespace Test
{
public static class DropboxService
{
private static string DropboxAccessToken = "...";
public async static Task<bool> UploadFile(Stream stream, string path, string filename)
{
using (var client = new DropboxClient(DropboxAccessToken))))
{
var updated = await client.Files.UploadAsync(
Path.Combine(path, filename),
WriteMode.Overwrite.Instance,
body: stream);
// never returns from UploadAsync
}
return true;
}
}
}
Комментарии:
1. Я подключил это к новому проекту, и метод вернулся для меня. Насколько велики данные, которые вы пытаетесь загрузить? Есть ли что-нибудь в самом потоке или в используемом вами сетевом подключении, что могло бы помешать завершению загрузки? Кроме того, как вы проверяете, что
UploadAsync
это не возвращается? Похоже, вы не используете возвращаемое значениеupdated
.2. Файл довольно маленький (csv с дюжиной строк в нем)… и файл фактически попадает в Dropbox… Я поставил точку останова и перешел вызов функции … и он никогда не возвращался… ну, по крайней мере, это не было чем-то глупым… но теперь, чтобы выяснить, в чем дело… Спасибо, что перепроверили меня.
3. @BrianRice, ты когда-нибудь это понимал? У меня такая же проблема.
4. Нет, я не понял проблему
Ответ №1:
Я точно не знаю, почему, но у меня это сработало.
ответ var = dbx.Файлы.UploadAsync(папка «/» файл, режим записи.Перезаписать.Экземпляр, тело: поток).Результат;