ファイル操作
このページでは、ファイルのアップロードやダウンロードに関するAPIを紹介します。
ファイルをアップロードする
- メソッド
-
POST
- URI
-
[your kumaneko domain]/api/file.php?name=file&dir=attachment
- 認証
-
リクエストヘッダに「X-Authorization」を追加し、「account:password」をBase64エンコードしたものを値に指定します。
- Content-Type
-
multipart/form-data
- パラメーター
-
リクエストはmultipart/form-data形式で送信されます。
Content-Dispositionヘッダー内で、nameパラメーターに「file」を指定し、filenameパラメーターにファイルの名前を指定します。
- 戻り値
-
アップロードされたファイルのファイルキーが返されます。
{ files: [ { filekey: "16575023862769001.png", filetype: "image/png", name: "test.png" } ] }
- サンプル
-
JavaScript
var blob = new Blob(['Sample File'], {type:'text/plain'}); var fileData = new FormData(); fileData.append('file[]', blob, 'test.txt'); fetch('[your kumaneko domain]/api/file.php?name=file&dir=attachment', { method: 'POST', headers: { 'X-Authorization': window.btoa(pd.kumaneko.users.login().account.value+':'+pd.kumaneko.users.login().pwd.value) }, body: fileData }) .then(response => { response.json().then((json) => { switch (response.status) { case 200: console.log(json); break; default: console.error('Error:', json); break; } }); }) .catch(error => { console.error('Error:', error); });
curl
curl -X POST '[your kumaneko domain]/api/file.php?name=file&dir=attachment' \ -H 'X-Authorization: L08xCvTh7A1EVm3rZimF98R8VLP3k4lMlzELqyCx' \ -F 'file[]=@FILEPATH'
ファイルをダウンロードする
- メソッド
-
GET
- URI
-
[your kumaneko domain]/api/file.php
- 認証
-
リクエストヘッダに「X-Authorization」を追加し、「account:password」をBase64エンコードしたものを値に指定します。
- Content-Type
-
application/json
- パラメーター
-
パラメータ名 指定する値 説明 filekey 文字列 レコードオブジェクトのfileフィールドにセットされた値
レコードオブジェクトとは、フィールドコードとフィールドの値などのレコードの情報を含むオブジェクトです。
- 関連ページ:
dir 文字列 「attachment」固定です。 - 戻り値
-
Base64で符号化されたデータ
{ file: "44CQUHJvcG9uZeOAkeOBlOWlkee0hOiAhemZkOWumlRJU+OD..." }
ダウンロードするファイルのファイルサイズがphp.iniで設定している「memory_limit」を超える場合は、ファイルを分割してダウンロードすることになります。
その場合は、「seek」というパラメータが追加されますので、サンプルコードを見ながらダウンロード方法を確認して下さい。
{ file: "44CQUHJvcG9uZeOAkeOBlOWlkee0hOiAhemZkOWumlRJU+OD...", seek: 25165824 }
- サンプル
-
JavaScript
var url = '[your kumaneko domain]/api/file.php?filekey=16575023862769001.png&dir=attachment'; var files = []; var getFile = (url) => { fetch(url, { method: 'GET', headers: { 'X-Authorization': window.btoa(pd.kumaneko.users.login().account.value+':'+pd.kumaneko.users.login().pwd.value) } }) .then(response => { response.json().then((json) => { switch (response.status) { case 200: if (json.seek) { files.push(json.file); getFile(url+'&seek='+json.seek.toString()); } else { if (files.length!=0) { files.push(json.file); json.file=files.join(''); } console.log(json); } break; default: console.error('Error:', json); break; } }); }) .catch(error => { console.error('Error:', error); }); }; getFile(url);
curl
curl -X GET '[your kumaneko domain]/api/file.php' \ -H 'X-Authorization: L08xCvTh7A1EVm3rZimF98R8VLP3k4lMlzELqyCx' \ -H 'Content-Type: application/json' \ -d '{ "fileKey": "16575023862769001.png", "dir": "attachment" }'