Azure Asp.net使用Dropbox.Api从DropBox下载文件

时间:2018-04-24 22:41:27

标签: asp.net azure dropbox-api

我的asp.net网络应用程序需要从DropBox下载文件。 在DropBox中,我创建了一个应用程序并拥有API密钥和Auth Token,Secret等。 在我的网络应用程序中,我引用了Dropbox.Api并可以创建DropboxClient。

像这样:
    将myDBClient变暗为新的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 :(得分:0)

您需要使用 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空项目并添加一个名为DropBoxApiTest.aspx的webform.aspx文件并将其设置为起始页。

4.要安装Dropbox.Api,请在程序包管理器控制台中运行以下命令:

PM> Install-Package Dropbox.Api

5.在网页中添加下载按钮

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

6.添加按钮的click事件和以下代码。

 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