RcloneでDropboxを操作しようとして発生したエラーの解決方法
概要
Rcloneを使ってDropboxの操作をしようとしたら、エラーが発生してしまいました。
ここではそのエラーの解決方法を紹介します。
問題について
RcloneでDropboxを使う場合、あらかじめDropbox APIを使えるように設定をしておく必要があります。
この設定は、Dropboxのウェブサイト上から行うもので、Dropbox APIを使うAppを作成して、そのApp KeyやApp Secretをもとにrcloneコマンドを用いて行います。
最終的にこれらの設定について、ミスなどは一切無かったのですが、実際にrcloneを使ってDropboxにアクセスすると次のようなエラーメッセージが表示されました。
Error in call to API function “files/get_metadata”: Path root is not supported for sandbox app.
エラーメッセージからは、files/get_metadataがサポートされていない、できないということが読み取れます。
解決方法
このエラーが発生する原因として、rcloneでのファイルの指定方法が間違っていました。
最初は次のようなコマンドを実行してエラーが発生していました。
rclone copy text.txt dropbox:/
このコマンドは、Dropboxの一番上の場所にローカル上のtext.txtという名前のファイルを保存するというものです。
しかし、私がDropbox APIを使うために作成したAppでは、「App folder」という権限で作成したもので、アクセスできる場所に制限があります。そのため、rcloneでファイルを保存しようとしているディレクトリの指定について制限があります。
ちなみにですが、「Full Dropbox」で作っていた場合は今回のエラーは発生しません。
Full DropboxでDropboxのAppを作り直して設定し直すというのもひとつの方法ですが、rcloneのコマンドでのディレクトリの指定方法を修正する方法でも問題を解決できます。
rclone copy text.txt dropbox:
このように、スラッシュ(/)を削除することで、App folderで設定したディレクトリにtext.txtが保存されるようになりました。
もしも、サブディレクトリに保存する場合は次のようにします。
rclone copy text.txt dropbox:sub_directory
ここでは、sub_directoryという名前のディレクトリの中へ保存するようにしています。
さいごに
RcloneでDropboxを操作する場合、場所の指定方法など注意する必要があるということが分かります。
同じような問題を抱えている人の参考になれば嬉しいです。