2012-03-26 66 views
5

我正在嘗試使用Sharpbox API將文件上傳到我的保管箱帳戶。但是,當我嘗試將文件上載到「公用」文件夾時,出現錯誤消息:「無法從服務器檢索子元素」使用Sharpbox API上傳到Dropbox

我遵循的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#都標記爲文檔,並且已將其轉換爲vb.net。


唸叨然後張貼有關在link provided by IanBailey同樣的錯誤後,我改變了:

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

var publicFolder = dropBoxStorage.GetRoot(); 

的文件,然後上傳成功。

編輯:但是,我只是意識到,你不能共享文件內的應用程序文件夾(即GetRoot指向),所以因此問題仍然發生在我身上。

編輯2:我認爲問題是由於在Dropbox上創建應用程序時的權限。當您第一次創建應用時,可以選擇授予對「Apps」文件夾或整個用戶的Dropbox的訪問權限。我遇到了錯誤,然後我創建了一個新的應用程序,請求訪問整個用戶的Dropbox,然後能夠訪問公用文件夾。

+1

我認爲這是Sharpbox的問題。這裏的人:http://sharpbox.codeplex.com/discussions/349810星期五有完全相同的問題(儘管在C#中)。 – ianbailey 2012-03-26 11:01:29

+0

是的,這看起來像是同樣的錯誤,我也會爲該頁面添加書籤,並留意如果沒有在這裏找到解決方案。謝謝伊恩。 – 2012-03-26 11:06:59

回答

2

問題是由於在Dropbox上創建應用程序時的權限所致。當您第一次創建應用時,可以選擇授予對「Apps」文件夾或整個用戶的Dropbox的訪問權限。直到我創建了一個請求訪問整個用戶的Dropbox然後能夠訪問公用文件夾的新應用程序時,我才收到錯誤。