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キーを使用します。特定のバケットに対する操作のみが許可されます。
Value: バケット設定画面で発行したAPIキー
2. セッション認証 (ブラウザ・管理画面向け)
ブラウザでログイン済みの場合、セッションを利用して認証します。バケットの作成や削除など、管理者権限が必要な操作に使用します。
📂 1. ファイル操作 (File Operations)
1.1 ファイル一覧取得 (List Files)
指定したバケット内のファイルとフォルダ構造を取得します。
Endpoint: GET /files/list
Use Case: ファイルマネージャーの表示、画像ギャラリーの構築。
パラメータ (Query Parameters)
特定フォルダ内を表示する場合のパス (末尾に/必須)
cURL Request
Bash
Response Example
JSON
1.2 ファイルアップロード (Upload File)
ファイルをバケットにアップロードします。成功時、課金用ストレージ容量が加算されます。
Endpoint: POST /file/upload
Content-Type: multipart/form-data
Use Case: ユーザーアイコンのアップロード、バックアップデータの保存。
パラメータ (Form Data)
保存先フォルダパス (例: uploads/)。指定しない場合はルート。
cURL Request
Bash
Response Example
JSON
1.3 ファイル削除 (Delete File)
ファイルを削除し、ストレージ容量を解放します。
Endpoint: POST /file/delete
Content-Type: application/json
パラメータ (JSON Body)
削除するファイルのパス (例: uploads/images/image.png)
cURL Request
Bash
📁 2. フォルダ操作 (Folder Operations)
2.1 フォルダ作成 (Create Folder)
空のフォルダ(プレフィックス)を作成します。
※ オブジェクトストレージの仕様上、0バイトのオブジェクトとして作成されます。
Endpoint: POST /folder/create
パラメータ (JSON Body)
親フォルダがある場合 (例: project_a/)
cURL Request
Bash
2.2 フォルダ一括削除 (Delete Folder)
指定したフォルダと、その中にあるすべてのファイルを再帰的に削除します。
※ 削除されたファイル分の容量がクレジット計算から減算されます。取り消しできません。
Endpoint: POST /folder/delete
パラメータ (JSON Body)
削除対象のフォルダパス (例: server_a/logs/)
cURL Request
Bash
🔗 3. アクセス共有 (Access Control)
3.1 署名付きURL発行 (Generate Signed URL)
プライベートなファイルに対して、一定時間だけアクセス可能なURLを発行します。
Use Case: チャットでのファイル共有、期限付きダウンロードリンク。
パラメータ (JSON Body)
cURL Request
Bash
Response Example
JSON
※ ブラウザでこのURLにアクセスするとファイルが表示・ダウンロードされます。
⚙️ 4. 管理・設定 (Management)
これらのAPIは通常、APIキーではなく**セッション認証(管理画面)**から呼び出されます。
4.1 バケット作成 (Create Bucket)
Auth: Session Only (Cookie)
Body: { "bucketName": "unique-name" }
4.2 バケット削除 (Delete Bucket)
バケットごと全データを削除します。
Auth: Session Only (Cookie)
Body: { "bucketId": "..." }
4.3 容量同期 (Sync Stats)
データベース上の容量表示と、実際のクラウドストレージ上の容量にズレが生じた場合に実行し、正しい値に修正します。
Body: { "bucketId": "..." }
cURL Request
Bash
作成: POST /apikey/create - Body: { "bucketId": "..." }
削除: POST /apikey/delete - Body: { "bucketId": "...", "apiKey": "..." }
🚨 エラーコード一覧 (Error Codes)
APIはHTTPステータスコードで成否を返します。レスポンスボディには { "error": "詳細メッセージ" } が含まれます。
APIキーが無効、または対象バケットへの権限がありません。