c# - 使用 Sharpbox API 上传到 Dropbox

标签 c# vb.net dropbox dropbox-api

我正在尝试使用 Sharpbox API将文件上传到我的保管箱帐户。但是,当我尝试将文件上传到“公共(public)”文件夹时,我收到一条错误消息:“无法从服务器检索子元素”

我已按照 the documentation pdf 第 10-11 页上的步骤进行操作这是我目前正在使用的代码(作为测试,我正在尝试上传 token.txt 文件):

Public Sub StoreOnDropbox()

    Dim oDBox As New CloudStorage
    Dim oDBoxConfig As AppLimit.CloudComputing.SharpBox.ICloudStorageConfiguration = CloudStorage.GetCloudConfigurationEasy(nSupportedCloudConfigurations.DropBox)
    Dim oAccessToken As ICloudStorageAccessToken = Nothing

    Using fs As IO.FileStream = File.Open("C:\Users\davidd5\Desktop\token.txt", FileMode.Open, FileAccess.Read, FileShare.None)
        oAccessToken = oDBox.DeserializeSecurityToken(fs)
    End Using
    Dim oStorageToken = oDBox.Open(oDBoxConfig, oAccessToken)
    Dim srcFile = Environment.ExpandEnvironmentVariables("C:\Users\davidd5\Desktop\token.txt")
    Dim publicFolder = oDBox.GetFolder("/Public")
    oDBox.UploadFile(srcFile, publicFolder)

    oDBox.Close()

End Sub

错误发生在 GetFolder 函数上。我已经标记了 vb.net 和 C#,因为文档在 C# 中并且我已经将它翻译成 vb.net。


阅读有关然后在 link provided by IanBailey 中发布相同错误的信息后,我改变了:

var publicFolder = dropBoxStorage.GetFolder("/Public");

  var publicFolder = dropBoxStorage.GetRoot();

文件随后上传成功。

编辑:但是,我刚刚意识到您不能在 apps 文件夹(GetRoot 指向)中共享文件,因此问题仍然存在。

编辑 2:我认为问题是在 dropbox 上创建应用程序时的权限问题。首次创建应用程序时,可以选择授予对“应用程序”文件夹或整个用户保管箱的访问权限。我遇到了错误,然后我创建了一个新应用程序,该应用程序请求访问整个用户的保管箱,然后能够访问公共(public)文件夹。

最佳答案

问题是由于在 Dropbox 上创建应用程序时的权限问题。首次创建应用程序时,可以选择授予对“应用程序”文件夹或整个用户保管箱的访问权限。在我创建一个请求访问整个用户保管箱然后能够访问公共(public)文件夹的新应用程序之前,我一直收到错误消息。

关于c# - 使用 Sharpbox API 上传到 Dropbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9870751/

相关文章:

c# - MVVMLight 中的交互性问题

c# - 在 XAML 设计器中找不到 DataContext 类(虽然一切看起来都很好)

sql-server - VB.net 中的 HTTPHandler 用于使用 Plupload 上传文件

c# - 将多个元素添加到 Prism 区域

c# - 以 JSON 格式从 LINQ to SQL 检索数据?

c# - 选中一个框时填充一个框,如何处理?

.net - 在 Invoke() 内部运行时,跨线程操作对表单控件无效 - .NET

android - 如何在android中使用 'Dropbox API'进行流媒体视频?

javascript - 如何使用 JavaScript 嵌入 Dropbox 中的视频?

css - 如何像在保管箱上一样创建下 zipper 接