Skip to content

FileDescriptor

Takayuki Hoshi edited this page May 31, 2019 · 4 revisions

概要

スマートフォンまたは周辺機器から他方のスマートデバイスに対しての ファイルディスクリプタ操作機能を提供するAPI。

目次

API概要
PUT /gotapi/fileDescriptor/closeスマートデバイスのファイルのクローズを要求する。
GET /gotapi/fileDescriptor/onWatchFileスマートデバイスのファイルの更新時間が変化したことを取得する。
PUT /gotapi/fileDescriptor/onWatchFileスマートデバイスのファイルの更新時間が変化したことを通知するイベントを開始する。
DELETE /gotapi/fileDescriptor/onWatchFileスマートデバイスのファイルの更新時間が変化したことを通知するイベントを登録解除する。
GET /gotapi/fileDescriptor/openスマートデバイスのファイルオープンを要求する。
GET /gotapi/fileDescriptor/readスマートデバイスのファイルを指定したサイズ分取得する。
PUT /gotapi/fileDescriptor/writeスマートデバイスのファイルへの書き込みを要求する。

種別

one-shot

概要

スマートデバイスのファイルのクローズを要求する。

ファイルがクローズされるまで、 オープンされたファイルはFileプロファイルなどで参照できない。

リクエスト

物理名データ型必須説明
serviceIdstringYesサービスID。取得対象スマートデバイス
pathstringYesファイルパス。ファイルが存在するパス。
ルートはデバイスプラグインごとに異なる。
ディレクトリを指定した場合はエラーを返す。

レスポンス

論理名物理名データ型必須説明
処理結果resultintegerYes0: 正常応答
0以外: 異常応答
システム名productstringYesDeviceConnectシステムの名前。
システムバージョンversionstringYesDeviceConnectシステムのバージョン名。
署名hmacstringNoレスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
"result" : 0,
"product" : "Example System",
"version" : "1.0.0"
}

種別

one-shot

概要

スマートデバイスのファイルの更新時間が変化したことを取得する。

プラグイン側でキャッシュしている最新のイベントメッセージを1つ取得する。

リクエスト

物理名データ型必須説明
serviceIdstringYesサービスID。取得対象スマートデバイス

レスポンス

論理名物理名データ型必須説明
処理結果resultintegerYes0: 正常応答
0以外: 異常応答
システム名productstringYesDeviceConnectシステムの名前。
システムバージョンversionstringYesDeviceConnectシステムのバージョン名。
署名hmacstringNoレスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
"result" : 0,
"product" : "Example System",
"version" : "1.0.0",
"file" : {
"path" : "Test1.png",
"curr" : "2017-01-01T12:34:56+0900",
"prev" : "2017-01-01T01:23:45+0900"
}
}

種別

event

概要

スマートデバイスのファイルの更新時間が変化したことを通知するイベントを開始する。

スマートデバイスのファイルへの書き込みが発生した時にイベントが発行される。

リクエスト

物理名データ型必須説明
serviceIdstringYesサービスID。取得対象スマートデバイス
intervallongNoデバイスプラグインがイベントを送信する間隔。

レスポンス

論理名物理名データ型必須説明
処理結果resultintegerYes0: 正常応答
0以外: 異常応答
システム名productstringYesDeviceConnectシステムの名前。
システムバージョンversionstringYesDeviceConnectシステムのバージョン名。
署名hmacstringNoレスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
"result" : 0,
"product" : "Example System",
"version" : "1.0.0"
}

イベント

論理名物理名データ型必須説明
サービスIDserviceIdstringYesイベントを送信したサービスのID
プロファイル名profilestringYesプロファイル名。
インターフェース名interfacestringYesインターフェース名。
アトリビュート名attributestringYesアトリビュート名。

イベントサンプル

{
"serviceId" : "Host.dummyId.localhost.deviceconnect.org",
"profile" : "filedescriptor",
"attribute" : "onwatchfile",
"file" : {
"path" : "/dir/file1.txt",
"curr" : "2014-05-02 T10:32:10+0900",
"prev" : "2014-05-01 T10:32:10+0900"
}
}

種別

event

概要

スマートデバイスのファイルの更新時間が変化したことを通知するイベントを登録解除する。

スマートデバイスのファイルへの書き込みが発生した時にイベントが発行される。

リクエスト

物理名データ型必須説明
serviceIdstringYesサービスID。取得対象スマートデバイス

レスポンス

論理名物理名データ型必須説明
処理結果resultintegerYes0: 正常応答
0以外: 異常応答
システム名productstringYesDeviceConnectシステムの名前。
システムバージョンversionstringYesDeviceConnectシステムのバージョン名。
署名hmacstringNoレスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
"result" : 0,
"product" : "Example System",
"version" : "1.0.0"
}

種別

one-shot

概要

スマートデバイスのファイルオープンを要求する。

ここで使用するpathは、Fileプロファイルで取得できる。

リクエスト

物理名データ型必須説明
serviceIdstringYesサービスID。取得対象スマートデバイス
pathstringYesファイルパス。ファイルが存在するパス。
ルートはデバイスプラグインごとに異なる。
ディレクトリを指定した場合はエラーを返す。
flagstringYesフラグ。
r : 読み込みのみ
rw : 読み込み&書き込み

レスポンス

論理名物理名データ型必須説明
処理結果resultintegerYes0: 正常応答
0以外: 異常応答
システム名productstringYesDeviceConnectシステムの名前。
システムバージョンversionstringYesDeviceConnectシステムのバージョン名。
署名hmacstringNoレスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
"result" : 0,
"product" : "Example System",
"version" : "1.0.0"
}

種別

one-shot

概要

スマートデバイスのファイルを指定したサイズ分取得する。

スマートデバイスのファイルが読み込み完了していない場合には、 再度このAPIを利用して取得を行う。

リクエスト

物理名データ型必須説明
serviceIdstringYesサービスID。取得対象スマートデバイス
pathstringYesファイルパス。ファイルが存在するパス。
ルートはデバイスプラグインごとに異なる。
ディレクトリを指定した場合はエラーを返す。
lengthlongYes読み込みサイズ。一度の読み込みで取得する最大サイズ。
length > 0
positionlongNo読み込み開始位置。読み込みファイルの開始位置を指定する。
省略された場合には、現在ファイルが読み込んでいる位置から読み込む。
position >= 0

レスポンス

論理名物理名データ型必須説明
処理結果resultintegerYes0: 正常応答
0以外: 異常応答
システム名productstringYesDeviceConnectシステムの名前。
システムバージョンversionstringYesDeviceConnectシステムのバージョン名。
署名hmacstringNoレスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。
データサイズsizeintegerYes読み込んだデータのサイズ
データfileDatastringYes読み込んだデータをdata URI schemeの形式で設定する

レスポンスサンプル

{
"result" : 0,
"product" : "Example System",
"version" : "1.0.0",
"size" : 100,
"fileData" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
}

種別

one-shot

概要

スマートデバイスのファイルへの書き込みを要求する。

スマートデバイスのファイルが書き込み完了していない場合には、 デバイスプラグイン側で書き込みが終わるまで待つこと。 書き込み中の場合はエラーを返し、再度リクエストを出すこと。

リクエスト

物理名データ型必須説明
serviceIdstringYesサービスID。取得対象スマートデバイス
pathstringYesファイルパス。ファイルが存在するパス。
ルートはデバイスプラグインごとに異なる。
ディレクトリを指定した場合はエラーを返す。
uristringNoURI。dataと同時に省略することはできない。
両方指定した場合はdataが優先され、uriは無視される。
datafileNoファイルのbinary。送信するファイルのbinary。
uriと同時に省略することはできない。
両方指定した場合はdataが優先され、uriは無視される。
positionlongNoファイルオフセット。
ファイルの書き込み開始位置を指定する。
省略された場合には、現在ファイルが書き込んでいる位置から書き込む。

レスポンス

論理名物理名データ型必須説明
処理結果resultintegerYes0: 正常応答
0以外: 異常応答
システム名productstringYesDeviceConnectシステムの名前。
システムバージョンversionstringYesDeviceConnectシステムのバージョン名。
署名hmacstringNoレスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
"result" : 0,
"product" : "Example System",
"version" : "1.0.0"
}

Clone this wiki locally