Pogoplug Web API に非公開コマンド moveFile と removeFile に再帰オプション
プライベートクラウドを実現する Pogoplug
WebAPI が公開されており、クライアントを作成することが出来る
Pogoplug Web Developers (APIリファレンス) ←最近移動した
ファイルの一覧取得(listFiles)、アップ・ダウン(Data Stream API)、削除(removeFile)等のコマンドが用意されているが、名前変更(renameFile みたいなの) が見当たらない
サポートブログをのぞいてみても、copyFile で目的の名前でコピーしてとか、仕様上無理のある内容が羅列されたりしている
また、公式クライアント(Web, Pogo Browser)で、容量の大きいディレクトリへリネームを行っても、そのような(コピーなど)動きはHDD上で見られないし、応答時間からしてもコピーはしてなさそう
ということで、昔仕事で作成したお手製のProxyServerへ手を加えて、Pogo Browser のリクエストをトラップしてみた
すると
初めて見る moveFile というコマンドへ下記の内容を Post している事が判明
!ロクなクライアント作らずに、これはマズイんじゃね
※実際は各フィールドへ値が入ってます。説明上改行などしてます
コマンド名から、移動も可能と考えられるが、PogoBrowser からドラッグドロップでの移動が実装されていないので、そこまでは確認してません。また、name は省略できるようです
※他のコマンドと同様、PostじゃなくてGetのParamでも、動作します
moveFile
さらに removeFile コマンドについて、削除対象のディレクトリ内にファイルやフォルダが存在すると、コマンドが失敗する。リファレンスの内容で行おうとすると、内部を再帰的に調べて、内側から削除コマンドを行う必要がある。これについても、公式クライアントでは完了までの時間が短く、何かあるだろうと調べてみた
下記がディレクトリを削除したときの removeFile への Post内容
WebAPI が公開されており、クライアントを作成することが出来る
Pogoplug Web Developers (APIリファレンス) ←最近移動した
ファイルの一覧取得(listFiles)、アップ・ダウン(Data Stream API)、削除(removeFile)等のコマンドが用意されているが、名前変更(renameFile みたいなの) が見当たらない
サポートブログをのぞいてみても、copyFile で目的の名前でコピーしてとか、仕様上無理のある内容が羅列されたりしている
また、公式クライアント(Web, Pogo Browser)で、容量の大きいディレクトリへリネームを行っても、そのような(コピーなど)動きはHDD上で見られないし、応答時間からしてもコピーはしてなさそう
ということで、昔仕事で作成したお手製のProxyServerへ手を加えて、Pogo Browser のリクエストをトラップしてみた
すると
初めて見る moveFile というコマンドへ下記の内容を Post している事が判明
!ロクなクライアント作らずに、これはマズイんじゃね
※実際は各フィールドへ値が入ってます。説明上改行などしてます
コマンド名から、移動も可能と考えられるが、PogoBrowser からドラッグドロップでの移動が実装されていないので、そこまでは確認してません。また、name は省略できるようです
※他のコマンドと同様、PostじゃなくてGetのParamでも、動作します
moveFile
Name | Req? | Type | Description |
valtoken | y | string | Opaque validation token string for user |
deviceid | y | string | The device ID we are talking to. |
serviceid | y | string | The service ID on the device we are talking to. |
fileid | y | string | Fileid to rename |
filename | y | string | New file name |
name | string | New object name |
さらに removeFile コマンドについて、削除対象のディレクトリ内にファイルやフォルダが存在すると、コマンドが失敗する。リファレンスの内容で行おうとすると、内部を再帰的に調べて、内側から削除コマンドを行う必要がある。これについても、公式クライアントでは完了までの時間が短く、何かあるだろうと調べてみた
下記がディレクトリを削除したときの removeFile への Post内容
recurse(再帰) オプションが存在し、1を指定することで、ディレクトリ内部もまとめて削除可能となっていた
現時点で リファレンスの removeFile コマンドに、そういった記述は存在しない
つづく
コメント