Skip to content

FileDescriptor Profile

TakayukiHoshi1984 edited this page Mar 27, 2017 · 4 revisions

目次

API 機能概要
FileDescriptor Open API スマートデバイスのファイルを開くように要求する。ここで使用するpathは、File APIで取得できる。
FileDescriptor Close API スマートデバイスのファイルを閉じるように要求する。
FileDescriptor Read API スマートデバイスのファイルを指定したサイズ分取得する。スマートデバイスのファイルが読み込み完了していない場合には、再度このAPIを呼び出して取得を行う。
FileDescriptor Write API ススマートデバイスのファイルへの書き込みを要求する。
FileDescriptor WatchFile Event API スマートデバイスのファイルの更新時間が変化したことを通知する。スマートデバイスのファイルへの書き込みが発生した時にイベントが発行される。

機能概要

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

参考API

http://nodejs.org/api/fs.html

インターフェース名称 Version 種別
FileDescriptor Open API 2.0.0 同期I/F

概要

スマートデバイスのファイルを開くように要求する。 ここで使用するメディアIDは、File APIで取得できる。

リクエスト

HTTPメソッド URI
GET /gotapi/fileDescriptor/open
論理名 物理名 データ型 省略 設定値
サービスID serviceId string - 取得対象スマートデバイス
ファイルパス path string - ファイルが存在するパス。ルートはデバイスプラグインごとに異なる。ディレクトリを指定した場合はエラーを返す。
フラグ flag string - "r"読み込みのみ
"rw" 読み込み&書き込み"

レスポンス

Content-Type 形式 HTTPステータス
application/json JSON 200
論理名 物理名 データ型 省略 設定値
処理結果 result number - 0:正常応答
0以外:異常応答

リクエストサンプル

GET  http://localhost:4035/gotapi/fileDescriptor/open?serviceId=localhost.deviceconnect.org&path=%2Fdir%2Ffile1.txt&flag=r&accessToken=xxxxx					

レスポンスサンプル

{
    "product":"Device Connect Manager",
    "version":"x.x",
    "result": 0
}
インターフェース名称 Version 種別
FileDescriptor Close API 2.0.0 同期I/F

概要

スマートデバイスのファイルを閉じるように要求する。

リクエスト

HTTPメソッド URI
PUT /gotapi/fileDescriptor/close
論理名 物理名 データ型 省略 設定値
サービスID serviceId string - 取得対象スマートデバイス
ファイルパス path string - ファイルが存在するパス。ルートはデバイスプラグインごとに異なる。ディレクトリを指定した場合はエラーを返す。

レスポンス

Content-Type 形式 HTTPステータス
application/json JSON 200
論理名 物理名 データ型 省略 設定値
処理結果 result number - 0:正常応答
0以外:異常応答

リクエストサンプル

PUT http://localhost:4035/gotapi/fileDescriptor/close
PUTデータ
serviceId=localhost.deviceconnect.org&path=%2Fdir%2Ffile1.txt&accessToken=xxxxx

レスポンスサンプル

{
    "product":"Device Connect Manager",
    "version":"x.x",
    "result": 0
}
インターフェース名称 Version 種別
FileDescriptor Read API 2.0.0 同期I/F

概要

スマートデバイスのファイルを指定したサイズ分取得する。 スマートデバイスのファイルが読み込み完了していない場合には、再度このAPIを呼び出して取得を行う。

リクエスト

HTTPメソッド URI
GET /gotapi/fileDescriptor/read
論理名 物理名 データ型 省略 設定値
サービスID serviceId string - 取得対象スマートデバイス
ファイルパス path string - ファイルが存在するパス。ルートはデバイスプラグインごとに異なる。ディレクトリを指定した場合はエラーを返す。
読み込みサイズ length long - 一度の読み込みで取得する最大サイズ。length > 0
読み込み開始位置 position long 読み込みファイルの開始位置を指定する。省略された場合には、現在ファイルが読み込んでいる位置から読み込む。position >= 0"

レスポンス

Content-Type 形式 HTTPステータス
application/json JSON 200
論理名 物理名 データ型 省略 設定値
処理結果 result number - 0:正常応答
0以外:異常応答
データサイズ size number - 読み込んだデータのサイズ
データ fileData string - 読み込んだデータをdata。URI schemeの形式で設定する

リクエストサンプル

GET  http://localhost:4035/gotapi/fileDescriptor/read?serviceId=localhost.deviceconnect.org&path=%2Fdir%2ffile1.txt&length=100&position=0&accessToken=xxxxx

レスポンスサンプル

{
    "product":"Device Connect Manager",
    "version":"x.x",
    "result": 0,
    "size": 100,
    "fileData": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
}
インターフェース名称 Version 種別
FileDescriptor Write API 2.0.0 同期I/F

概要

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

リクエスト

HTTPメソッド URI
PUT /gotapi/fileDescriptor/write
論理名 物理名 データ型 省略 設定値
サービスID serviceId string - 取得対象スマートデバイス
ファイルパス path string - ファイルが存在するパス。ルートはデバイスプラグインごとに異なる。ディレクトリを指定した場合はエラーを返す。
ファイルのbinary media multipart - テキスト、画像、動画、音声ファイルなどをmultipartで送ることができる。
ファイルオフセット position long ファイルの書き込み開始位置を指定する。省略された場合には、現在ファイルが書き込んでいる位置から書き込む。

レスポンス

Content-Type 形式 HTTPステータス
application/json JSON 200
論理名 物理名 データ型 省略 設定値
処理結果 result number - 0:正常応答
0以外:異常応答

リクエストサンプル

PUT http://localhost:4035/gotapi/fileDescriptor/write
Multipartボディ
Content-Type: multipart/form-data; boundary=--BOUNDARY1234567890
----BOUNDARY1234567890
Content-Disposition: form-data; name="accessToken"

xxxxx
----BOUNDARY1234567890
Content-Disposition: form-data; name="serviceId"

localhost.deviceconnect.org
----BOUNDARY1234567890
Content-Disposition: form-data; name="path"

/dir/file1.txt
----BOUNDARY1234567890
Content-Disposition: form-data; name="media"; filename="some_file.txt"
Content-Type: text/plain

Hello World!
----BOUNDARY1234567890--

boundaryに指定はない。

レスポンスサンプル

{
    "product":"Device Connect Manager",
    "version":"x.x",
    "result": 0
}
インターフェース名称 Version 種別
FileDescriptor WatchFile Event API 2.0.0 非同期I/F(イベントI/F)

概要

スマートデバイスのファイルの更新時間が変化したことを通知する。 スマートデバイスのファイルへの書き込みが発生した時にイベントが発行される。

イベント情報

イベント名 Content-Type
/gotapi/fileDescriptor/onwatchfile application/json

メッセージ

論理名 物理名 データ型 省略 設定値
オブジェクト file object - ファイルデータ(object)
ファイルパス path string - ファイルが存在するパス。ルートはデバイスプラグインごとに異なる。ディレクトリを指定した場合はエラーを返す。
属性値 curr string - 現在の更新時間(RFC 3339)。
例: "2014-01-01T00:00:00+0900"
属性値 prev string - 以前の更新時間(RFC 3339)。
例: "2014-01-01T00:00:00+0900"

メッセージサンプル

{
    "product":"Device Connect Manager",
    "version":"x.x",
    "serviceId":  "device1.localhost.deviceconnect.org",
	"api" : "gotapi",
    "profile" : "fileDescriptor",
    "attribute" : "onwatchfile",
    "sessionKey" : "0a93ac0aade4e046ed63eb24d1172f5f35c88ca60daa901547c28d5827cb418a5de1d7c5f9e62405",
    "file" : {
        "path": "/dir/file1.txt",
        "curr": "2014-05-02 T10:32:10+0900",
        "prev": "2014-05-01 T10:32:10+0900"
    }
}

Clone this wiki locally