Skip to content

Gateway เฉพาะ

ผู้ใช้แผน Nirvana จะได้รับ IPFS gateway ส่วนตัวที่ซับโดเมนเฉพาะ gateway นี้ให้บริการเฉพาะไฟล์ที่ปักหมุดในบัญชีของคุณ — จะไม่แก้ไข CID จากผู้ใช้อื่นหรือเครือข่าย IPFS สาธารณะ

Gateways list page with multiple gateway cards

URL Gateway ของคุณ

URL gateway ของคุณแสดงในหน้า Gateway และส่งคืนโดย endpoint /user/profile:

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

โหมดการเข้าถึง

โหมดพฤติกรรม
เปิด (ค่าเริ่มต้น)ใครก็ตามที่มี URL gateway + CID ของคุณสามารถเข้าถึงไฟล์ได้ ไม่ต้องใช้โทเค็น
ต้องใช้โทเค็นคำขอต้องมี gateway token ผ่านพารามิเตอร์คิวรี ?token=gwt_... หรือเฮดเดอร์ X-Gateway-Token

ขีดจำกัด

  • แบนด์วิดท์ gateway 50 GB/เดือน รวมกับ Nirvana
  • เมื่อถึงขีดจำกัดแบนด์วิดท์ คำขอ gateway จะส่งคืน 429 จนกว่าจะถึงเดือนถัดไป
  • การใช้งานพื้นที่จัดเก็บรีเซ็ตในวันแรกของแต่ละเดือนปฏิทิน
  • ให้บริการเฉพาะ CID ที่ปักหมุดในบัญชีของคุณ — คำขอ CID อื่นส่งคืน 403

TIP

gateway สาธารณะที่ ipfs.ninja/ipfs/ ยังคงใช้งานได้ในทุกแผนและให้บริการ CID ใดก็ได้โดยไม่ต้องยืนยันตัวตน

การตั้งค่า Gateway

กำหนดค่าการควบคุมการเข้าถึงสำหรับ gateway เฉพาะของคุณ

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

อัปเดตการตั้งค่า

PUT /gateway-settings

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
tokenRequiredbooleanไม่เปิด/ปิดการต้องใช้ gateway token
ipWhiteliststring[]ไม่อาร์เรย์ของที่อยู่ IP ที่อนุญาต สูงสุด 100 อาร์เรย์ว่างจะลบ whitelist
allowedOriginsstring[]ไม่อาร์เรย์ของ origin ที่อนุญาตสำหรับคำขอเบราว์เซอร์ สูงสุด 100 ต้องใช้รูปแบบ HTTPS (เช่น https://myapp.com) อาร์เรย์ว่างอนุญาตทุก origin

ตัวอย่าง

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 whitelist
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 whitelist (อนุญาตทุก 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": []}'

# จำกัดเฉพาะ origin ที่ระบุ
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"]}'

# ลบข้อจำกัด origin (อนุญาตทุก origin)
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": []}'

ข้อจำกัด Origin

เมื่อกำหนดค่า allowedOrigins แล้ว เฉพาะคำขอจากเบราว์เซอร์จาก origin ที่ระบุเท่านั้นที่ได้รับอนุญาต gateway จะตรวจสอบเฮดเดอร์ Origin และ Referer ของคำขอที่เข้ามา

  • หากรายการว่าง (ค่าเริ่มต้น) ทุก origin จะได้รับอนุญาต
  • หากระบุ origin คำขอที่มีเฮดเดอร์ Origin หรือ Referer ที่ไม่ตรงกับรายการใดจะถูกปฏิเสธด้วยการตอบกลับ 403
  • คำขอที่ไม่ใช่เบราว์เซอร์ที่ไม่มีเฮดเดอร์ Origin (เช่น การเรียกฝั่งเซิร์ฟเวอร์หรือ curl) จะผ่านไปได้โดยไม่มีข้อจำกัด

สิ่งนี้มีประโยชน์สำหรับการฝังเนื้อหา gateway ในแอปพลิเคชันเว็บของคุณขณะป้องกันไม่ให้เว็บไซต์อื่นลิงก์ไฟล์ของคุณโดยตรง

Gateway Tokens

Gateway token (prefix gwt_) เป็นแบบอ่านอย่างเดียวและปลอดภัยในการฝังในแอปพลิเคชัน frontend ต่างจาก API key gateway token สามารถเข้าถึงไฟล์ได้เฉพาะผ่าน gateway เฉพาะของคุณ — ไม่สามารถอัปโหลด, ลบ หรือจัดการบัญชีของคุณได้

ความสามารถAPI Key (bws_)Gateway Token (gwt_)
อัปโหลด / ลบไฟล์ใช่ไม่
แสดงรายการ / รับ metadata ของไฟล์ใช่ไม่
อ่านไฟล์ผ่าน gatewayไม่ใช่
ปลอดภัยในการฝังใน frontendไม่ใช่

สร้าง Gateway Token

POST /gateway-tokens

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
namestringไม่ป้ายกำกับสำหรับโทเค็น (เช่น "Frontend") ค่าเริ่มต้นคือ "Default"

การตอบกลับ 201 Created

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

WARNING

โทเค็นเต็มจะถูกส่งคืนเพียงครั้งเดียวเมื่อสร้าง เก็บรักษาไว้อย่างปลอดภัย

แสดงรายการ Gateway Tokens

GET /gateway-tokens

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

ลบ Gateway Token

DELETE /gateway-tokens/:prefix

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
prefixstringใช่token prefix ที่จะลบ (เช่น "gwt_a1b2c3d4")

การใช้ gateway token

เมื่อ gateway ของคุณเปิดใช้โหมดต้องใช้โทเค็น ส่งโทเค็นเป็นพารามิเตอร์คิวรีหรือเฮดเดอร์:

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"