REST API ファイル操作
これまでファイルアップロードはブラウザ上で各WIKIページからしか行えませんでしたが、APIからのファイルアップロードが可能になりました。
これにより、REST API ページ操作 と合わせてプログラムによってページコンテンツの作成を完結させることができるようになりました。
※ APIを利用するにはコントロールパネルの各種設定からAPI使用の許可をしてください。
※※ APIの実行には 認証API によりAPIトークンを取得しておく必要があります。
ファイルアップロードAPI
ファイル一覧
GET https://api.wikiwiki.jp/<wiki-id>/page/<page-name>/attachments
指定したページの添付ファイル一覧を取得します。
使用例
curl "https://api.wikiwiki.jp/<wiki-id>/page/<page-name>/attachments" \
-H "Authorization: Bearer eyJ0eXA..."
/auth
で得られた token フィールドの内容を Authorization ヘッダに Bearer で指定します。
結果
{
"attachments": {
"test.png": {
"page": "test",
"file": "test.png",
"age": 0,
"size": 20538,
"time": 1700445213,
"time_str": "2023\/11\/20 10:53:33",
"size_str": "20.1KB",
"type": "image\/png",
"md5hash": "c144f920cb24e4d8c8f76d2b6c9c3efe",
"freeze": false
},
"test.txt": {
"page": "test",
"file": "test.txt",
"age": 0,
"size": 35,
"time": 1701667943,
"time_str": "2023\/12\/04 14:32:23",
"size_str": "0.0KB",
"type": "application\/octet-stream",
"md5hash": "fe0ba2b564fb3a26f42ca62c8e071478",
"freeze": true
}
}
}
ファイル取得
GET https://api.wikiwiki.jp/<wiki-id>/page/<page-name>/attachment/<file-name>
指定したページの添付ファイルを取得します。
使用例
curl "https://api.wikiwiki.jp/<wiki-id>/page/<page-name>/attachment/<file-name>" \
-H "Authorization: Bearer eyJ0eXA..."
/auth
で得られた token フィールドの内容を Authorization ヘッダに Bearer で指定します。
curl "https://api.wikiwiki.jp/<wiki-id>/page/<page-name>/attachment/<file-name>?rev=<md5hash>" \
-H "Authorization: Bearer eyJ0eXA..."
よりセキュアなファイル取得をしたい場合、rev パラメータに attachments で得られた md5hash を指定することもできます。
結果
{
"page": "test",
"file": "test.txt",
"age": 0,
"size": 35,
"time": 1702275537,
"time_str": "2023\/12\/11 15:18:57",
"size_str": "0.0KB",
"type": "application\/octet-stream",
"md5hash": "fe0ba2b564fb3a26f42ca62c8e071478",
"freeze": false,
"src": "PD9waHANCiAgICBlY2hvICJIZWxsbyBXb3JsZCEiOw=="
}
srcフィールドにはファイルのBase64エンコードされた内容が格納されています。
以下のようなコマンドでファイルを復元できます。
echo "PD9waHANCiAgICBlY2hvICJIZWxsbyBXb3JsZCEiOw==" | base64 -d > test.txt
また、パラメータに direct=1 を指定すると、直接ファイルのダウンロードを行うことができます。
curl "https://api.wikiwiki.jp/<wiki-id>/page/<page-name>/attachment/<file-name>?rev=<md5hash>&direct=1" \
-H "Authorization: Bearer eyJ0eXA..." > downloaded-file-name
ファイルアップロード
PUT https://api.wikiwiki.jp/<wiki-id>/page/<page-name>/attachment
指定したページにファイルをアップロードします。
使用例
curl -X PUT "https://api.wikiwiki.jp/<wiki-id>/page/<page-name>/attachment" \
-H "Authorization: Bearer eyJ0eXA..." \
-H "Content-Type: application/json" \
-d "{\"filename\": \"<filename>\", \"data\": \"<base64-encoded-data>\"}"
/auth
で得られた token フィールドの内容を Authorization ヘッダに Bearer で指定します。
dataにはファイルのBase64エンコードされた内容を指定します。
結果
{
"status": "ok"
}
ファイル削除
DELETE https://api.wikiwiki.jp/<wiki-id>/page/<page-name>/attachment/<file-name>
指定したページの添付ファイルを削除します。
使用例
curl -X DELETE "http://api.wikiwiki.jp/<wiki-id>/page/<page-name>/attachment/<filename>" \
-H "Authorization: Bearer eyJ0eXA..."
/auth
で得られた token フィールドの内容を Authorization ヘッダに Bearer で指定します。
結果
{
"status": "ok"
}