Dropbox API UploadAsync никогда не возвращается

#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(папка «/» файл, режим записи.Перезаписать.Экземпляр, тело: поток).Результат;