Mini-VPS Object Storage API Documentation
Learn more about documenting APIs in GitBook.
Mini-VPS のオブジェクトストレージを操作するためのREST API仕様書です。
このAPIを使用することで、アプリケーションから直接ファイルのアップロード、一覧取得、削除、アクセス制御を行うことができます。
🌐 基本情報 (General Info)
Base URL:
https://mini-vps.mixeder.com/api/storage課金について:
ストレージ操作(アップロード、削除、一覧取得)は、ユーザーのクレジット残高を使用します。
クレジットが
0以下の場合、アップロードやAPI操作は402 Payment Requiredエラーとなります。
🔑 認証 (Authentication)
APIを利用するには、以下のいずれかの認証が必要です。
1. APIキー認証 (推奨: 外部アプリ向け)
バケットごとに発行されたAPIキーを使用します。特定のバケットに対する操作のみが許可されます。
Header Name:
x-api-keyValue: バケット設定画面で発行したAPIキー
2. セッション認証 (ブラウザ・管理画面向け)
ブラウザでログイン済みの場合、セッションを利用して認証します。バケットの作成や削除など、管理者権限が必要な操作に使用します。
📂 1. ファイル操作 (File Operations)
1.1 ファイル一覧取得 (List Files)
指定したバケット内のファイルとフォルダ構造を取得します。
Endpoint:
GET /files/listAuth: API Key / Session
Use Case: ファイルマネージャーの表示、画像ギャラリーの構築。
パラメータ (Query Parameters)
パラメータ
必須
説明
例
bucketId
✅
対象のバケットID
b1234-uuid
prefix
特定フォルダ内を表示する場合のパス (末尾に/必須)
images/2024/
cURL Request
Bash
Response Example
JSON
1.2 ファイルアップロード (Upload File)
ファイルをバケットにアップロードします。成功時、課金用ストレージ容量が加算されます。
Endpoint:
POST /file/uploadAuth: API Key / Session
Content-Type:
multipart/form-dataUse Case: ユーザーアイコンのアップロード、バックアップデータの保存。
パラメータ (Form Data)
パラメータ
必須
説明
file
✅
バイナリデータ (File Object)
bucketId
✅
アップロード先のバケットID
targetPrefix
保存先フォルダパス (例: uploads/)。指定しない場合はルート。
cURL Request
Bash
Response Example
JSON
1.3 ファイル削除 (Delete File)
ファイルを削除し、ストレージ容量を解放します。
Endpoint:
POST /file/deleteAuth: API Key / Session
Content-Type:
application/json
パラメータ (JSON Body)
パラメータ
必須
説明
bucketId
✅
バケットID
key
✅
削除するファイルのパス (例: uploads/images/image.png)
cURL Request
Bash
📁 2. フォルダ操作 (Folder Operations)
2.1 フォルダ作成 (Create Folder)
空のフォルダ(プレフィックス)を作成します。
※ オブジェクトストレージの仕様上、0バイトのオブジェクトとして作成されます。
Endpoint:
POST /folder/createAuth: API Key / Session
パラメータ (JSON Body)
パラメータ
必須
説明
bucketId
✅
バケットID
folderName
✅
作成するフォルダ名 (例: new_docs)
currentPrefix
親フォルダがある場合 (例: project_a/)
cURL Request
Bash
2.2 フォルダ一括削除 (Delete Folder)
指定したフォルダと、その中にあるすべてのファイルを再帰的に削除します。
※ 削除されたファイル分の容量がクレジット計算から減算されます。取り消しできません。
Endpoint:
POST /folder/deleteAuth: API Key / Session
パラメータ (JSON Body)
パラメータ
必須
説明
bucketId
✅
バケットID
folderPath
✅
削除対象のフォルダパス (例: server_a/logs/)
cURL Request
Bash
🔗 3. アクセス共有 (Access Control)
3.1 署名付きURL発行 (Generate Signed URL)
プライベートなファイルに対して、一定時間だけアクセス可能なURLを発行します。
Endpoint:
POST /url/signAuth: API Key / Session
Use Case: チャットでのファイル共有、期限付きダウンロードリンク。
パラメータ (JSON Body)
パラメータ
必須
説明
bucketId
✅
バケットID
key
✅
対象ファイルのパス
cURL Request
Bash
Response Example
JSON
※ ブラウザでこのURLにアクセスするとファイルが表示・ダウンロードされます。
⚙️ 4. 管理・設定 (Management)
これらのAPIは通常、APIキーではなく**セッション認証(管理画面)**から呼び出されます。
4.1 バケット作成 (Create Bucket)
Endpoint:
POST /createAuth: Session Only (Cookie)
Body:
{ "bucketName": "unique-name" }
4.2 バケット削除 (Delete Bucket)
バケットごと全データを削除します。
Endpoint:
POST /deleteAuth: Session Only (Cookie)
Body:
{ "bucketId": "..." }
4.3 容量同期 (Sync Stats)
データベース上の容量表示と、実際のクラウドストレージ上の容量にズレが生じた場合に実行し、正しい値に修正します。
Endpoint:
POST /syncAuth: API Key / Session
Body:
{ "bucketId": "..." }
cURL Request
Bash
4.4 APIキー管理
作成:
POST /apikey/create- Body:{ "bucketId": "..." }削除:
POST /apikey/delete- Body:{ "bucketId": "...", "apiKey": "..." }
🚨 エラーコード一覧 (Error Codes)
APIはHTTPステータスコードで成否を返します。レスポンスボディには { "error": "詳細メッセージ" } が含まれます。
Status
Code
説明
対処法
✅
200
OK
リクエスト成功。
❌
400
Bad Request
パラメータ不足、またはファイルサイズ制限超過。
❌
401
Unauthorized
ログインしていない、またはセッション切れ。
❌
402
Payment Required
クレジット残高不足。チャージしてください。
❌
403
Forbidden
APIキーが無効、または対象バケットへの権限がありません。
❌
404
Not Found
指定されたバケットIDやファイルが存在しません。
❌
500
Server Error
サーバー内部エラー。管理者へ連絡してください。
最終更新