ファイル操作

このページでは、ファイルのアップロードやダウンロードに関する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"
	}'