Sharpbox APIを使用してファイルをドロップボックス アカウントにアップロードしようとしています。ただし、「パブリック」フォルダーにファイルをアップロードしようとすると、「サーバーから子要素を取得できませんでした」というエラーが表示されます。
ドキュメント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 関数でエラーが発生します。ドキュメンテーションが C# であるため、vb.net と C# の両方にタグを付け、それを vb.net に翻訳しました。
IanBailey が提供するリンクで同じエラーについて読んだ後、次のように変更しました。
var publicFolder = dropBoxStorage.GetFolder("/Public");
に
var publicFolder = dropBoxStorage.GetRoot();
その後、ファイルは正常にアップロードされました。
編集:ただし、( GetRoot が指す) apps フォルダー内でファイルを共有できないことに気付いたので、問題はまだ発生しています。
編集 2: 問題は、ドロップボックスでアプリを作成するときのアクセス許可によるものだと思います。アプリを初めて作成するとき、「アプリ」フォルダーまたはユーザーのドロップボックス全体へのアクセスを許可するオプションがあります。エラーが発生していたので、ユーザーのドロップボックス全体へのアクセスを要求する新しいアプリを作成し、パブリック フォルダーにアクセスできました。