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
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 コマンドに、そういった記述は存在しない


つづく

コメント