Azure Asp.net загружает файлы из DropBox с помощью Dropbox.Api - PullRequest
0 голосов
/ 25 апреля 2018

Мое веб-приложение asp.net требует загрузки файлов из DropBox. В DropBox я создал приложение, у меня есть ключ API и Auth Token, Secret и т. Д. В моем веб-приложении у меня есть ссылка на Dropbox.Api, и я могу создать DropboxClient.

Вроде так:
Dim myDBClient As New DropboxClient ("my_token_auth")

Что мне делать дальше? У кого-нибудь есть пример кода. Я прочитал, мне нужно вызвать асинхронный метод для загрузки, такой как код ниже.

Но код не работает. Не подведет, но ничего не делает.

Любая помощь будет оценена. Спасибо

Dim folder As String = "C:\Data"
Dim file2 As String = "myFile.txt"

Using response = myDBClient.Files.DownloadAsync("/" & folder & "/" & file2)
 Using fileStream = File.Create("C:\Data\myFile.txt")
      (response.GetContentAsStreamAsync()).CopyTo(fileStream))
 End Using
End Using

1 Ответ

0 голосов
/ 25 апреля 2018

Вам нужно использовать Await , чтобы получить ожидаемый результат.

Демонстрационный код:

 Dim myDbClient As New DropboxClient("auth token")
 Dim folder = "test"  'dropbox folder name
 Dim fileName = "1.txt" 'dropbox file name
 Dim response As IDownloadResponse(Of FileMetadata) = Await myDbClient.Files.DownloadAsync("/" + folder + "/" + fileName)
 Dim bytes = Await response.GetContentAsByteArrayAsync()
 Using fileStream = Create("D:\tom\2.txt") ' local path

    fileStream.Write(bytes, 0, bytes.Length)

 End Using

Обновление:

Добавить этапы подробного тестирования:

1. Создайте приложение Dropbox и сгенерируйте токен авторизации.

enter image description here

2. Создайте папку и загрузите файл в папку Dropbox

enter image description here

3. Создайте пустой проект Asp.net и добавьте файл webform.aspx с именем DropBoxApiTest.aspx и установите его в качестве начальной страницы.

4.Чтобы установить Dropbox.Api, выполните следующую команду в консоли диспетчера пакетов:

PM> Install-Package Dropbox.Api

5.Добавьте кнопку загрузки на веб-странице

 <asp:Button ID="_btnDownload" runat="server" Text="Download" />

6.Добавьте событие щелчка длякнопка и следующий код.

 Protected Async Sub _btnDownload_Click(sender As Object, e As EventArgs) Handles _btnDownload.Click

        Dim token = "xaMln4bUnRAAAAAAAAAAIq...."
        Dim myDbClient As New DropboxClient(token)
        Dim folder = "test"  'dropbox folder name
        Dim fileName = "1.txt" 'dropbox file name
        Dim response As IDownloadResponse(Of FileMetadata) = Await myDbClient.Files.DownloadAsync("/" + folder + "/" + fileName)
        Dim bytes = Await response.GetContentAsByteArrayAsync()
        Using fileStream = Create("D:\tom\download.txt") ' local path

            fileStream.Write(bytes, 0, bytes.Length)

        End Using

    End Sub

7. Нам также нужно изменить aspx Async на true

8.Проверить его локально.

enter image description here

...