Skip to content

専用ゲートウェイ

Nirvana プランのユーザーは、固有のサブドメインにプライベート IPFS ゲートウェイを取得できます。このゲートウェイはアカウントにピン留めされたファイルのみを配信し、他のユーザーやパブリック IPFS ネットワークの CID は解決しません。

Gateways list page with multiple gateway cards

ゲートウェイ URL

ゲートウェイ URL はゲートウェイページに表示され、/user/profile エンドポイントからも返されます:

https://<your-slug>.gw.ipfs.ninja/ipfs/<CID>

アクセスモード

モード動作
オープン(デフォルト)ゲートウェイ URL + CID を持つ人は誰でもファイルにアクセスできます。トークン不要。
トークン必須リクエストには ?token=gwt_... クエリパラメータまたは X-Gateway-Token ヘッダーでゲートウェイトークンを含める必要があります。

制限

  • Nirvana には月間 50 GB のゲートウェイ帯域幅が含まれます
  • 帯域幅制限に達すると、ゲートウェイリクエストは翌月まで 429 を返します
  • ストレージ使用量は毎月1日にリセットされます
  • アカウントにピン留めされた CID のみを配信 — 他の CID のリクエストは 403 を返します

TIP

ipfs.ninja/ipfs/ のパブリックゲートウェイはすべてのプランで利用可能で、認証なしで任意の CID を配信します。

ゲートウェイ設定

専用ゲートウェイのアクセス制御を設定します。

Gateway detail page with access mode, token required, and IP whitelist settings

設定の更新

PUT /gateway-settings

パラメータ必須説明
tokenRequiredbooleanいいえゲートウェイトークン要件の有効化/無効化。
ipWhiteliststring[]いいえ許可する IP アドレスの配列。最大 100。空の配列でホワイトリストを削除。
allowedOriginsstring[]いいえブラウザリクエストを許可するオリジンの配列。最大 100。HTTPS 形式(例:https://myapp.com)を使用。空の配列ですべてのオリジンを許可。

bash
# トークン必須モードを有効化
curl -X PUT https://api.ipfs.ninja/gateway-settings \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"tokenRequired": true}'

# IP ホワイトリストを設定
curl -X PUT https://api.ipfs.ninja/gateway-settings \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"ipWhitelist": ["203.0.113.1", "198.51.100.0"]}'

# IP ホワイトリストをクリア(すべての IP を許可)
curl -X PUT https://api.ipfs.ninja/gateway-settings \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"ipWhitelist": []}'

# 特定のオリジンに制限
curl -X PUT https://api.ipfs.ninja/gateway-settings \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"allowedOrigins": ["https://myapp.com", "https://staging.myapp.com"]}'

# オリジン制限を削除(すべてのオリジンを許可)
curl -X PUT https://api.ipfs.ninja/gateway-settings \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"allowedOrigins": []}'

オリジン制限

allowedOrigins が設定されている場合、リストに含まれるオリジンからのブラウザリクエストのみが許可されます。ゲートウェイは受信リクエストの Origin および Referer ヘッダーをチェックします。

  • リストが空の場合(デフォルト)、すべてのオリジンが許可されます。
  • オリジンが指定されている場合、一致しない Origin または Referer ヘッダーを持つリクエストは 403 レスポンスで拒否されます。
  • Origin ヘッダーを含まない非ブラウザリクエスト(サーバーサイドのフェッチや curl など)は制限なく通過します。

これは Web アプリケーションにゲートウェイコンテンツを埋め込みながら、他のサイトからのファイルの直リンクを防ぐのに便利です。

ゲートウェイトークン

ゲートウェイトークン(gwt_ プレフィックス)は読み取り専用で、フロントエンドアプリケーションに安全に埋め込めます。API キーとは異なり、ゲートウェイトークンは専用ゲートウェイ経由でのみファイルにアクセスでき、アップロード、削除、アカウント管理はできません。

機能API キー (bws_)ゲートウェイトークン (gwt_)
ファイルのアップロード / 削除はいいいえ
ファイルの一覧 / メタデータ取得はいいいえ
ゲートウェイ経由でファイルを読み取りいいえはい
フロントエンドに安全に埋め込み可能いいえはい

ゲートウェイトークンの作成

POST /gateway-tokens

パラメータ必須説明
namestringいいえトークンのラベル(例:"Frontend")。デフォルトは "Default"。

レスポンス 201 Created

json
{
  "token": "gwt_a1b2c3d4e5f6789012345678abcdef01",
  "tokenPrefix": "gwt_a1b2c3d4",
  "tokenName": "Frontend",
  "createdAt": 1711036800000
}

WARNING

完全なトークンは作成時に一度だけ返されます。安全に保管してください。

ゲートウェイトークンの一覧

GET /gateway-tokens

json
[
  {
    "tokenPrefix": "gwt_a1b2c3d4",
    "tokenName": "Frontend",
    "createdAt": 1711036800000
  }
]

ゲートウェイトークンの削除

DELETE /gateway-tokens/:prefix

パラメータ必須説明
prefixstringはい削除するトークンプレフィックス(例:"gwt_a1b2c3d4")。

ゲートウェイトークンの使用

ゲートウェイでトークン必須モードが有効な場合、トークンをクエリパラメータまたはヘッダーとして渡します:

bash
# クエリパラメータ
curl "https://a1b2c3d4.gw.ipfs.ninja/ipfs/QmXk7VRz...?token=gwt_your_token"

# またはヘッダー
curl https://a1b2c3d4.gw.ipfs.ninja/ipfs/QmXk7VRz... \
  -H "X-Gateway-Token: gwt_your_token"