Skip to content

ไฟล์

อัปโหลด, แสดงรายการ และเรียกดูไฟล์บน IPFS

Files page showing uploaded and pinned files

อัปโหลดไฟล์

POST /upload/new

อัปโหลดไฟล์ใดก็ได้ไปยัง IPFS ไฟล์จะถูกปักหมุดและส่งคืน CID ถาวร

เนื้อหาคำขอ

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
contentstring | objectใช่อ็อบเจกต์/อาร์เรย์ JSON หรือข้อมูลไฟล์ที่เข้ารหัส base64 (รูปภาพ, PDF, HTML หรือไฟล์ประเภทใดก็ได้) สำหรับการนำเข้า CAR ให้ใช้ไฟล์ CAR ที่เข้ารหัส base64
carbooleanไม่ตั้งค่าเป็น true เพื่อนำเข้า ไฟล์ CAR (การนำเข้า DAG) รักษา CID เดิมไว้อย่างแม่นยำ
descriptionstringไม่คำอธิบายสั้นๆ ของเนื้อหาที่อัปโหลด
metadataobjectไม่คู่คีย์-ค่าที่กำหนดเองเพื่อแนบกับไฟล์ สูงสุด 10 คีย์ คีย์ต้องเป็นตัวอักษรและตัวเลขหรือขีดล่าง 1-64 ตัวอักษร ค่าต้องเป็นสตริง สูงสุด 256 ตัวอักษร ขนาด metadata รวมต้องไม่เกิน 4 KB

ตัวอย่างคำขอ

bash
curl -X POST https://api.ipfs.ninja/upload/new \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "content": { "name": "example", "value": 42 },
    "description": "Test upload",
    "metadata": {
      "project": "my-app",
      "environment": "production"
    }
  }'

อัปโหลดรูปภาพ (base64)

javascript
const fs = require("fs");
const image = fs.readFileSync("photo.png").toString("base64");

const response = await fetch("https://api.ipfs.ninja/upload/new", {
  method: "POST",
  headers: {
    "X-Api-Key": "bws_your_api_key_here",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    content: image,
    description: "Profile photo"
  })
});

การตอบกลับ 200 OK

json
{
  "cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
  "sizeMB": 0.042,
  "uris": {
    "ipfs": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
    "url": "https://ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
  }
}

CIDv1 เป็นค่าเริ่มต้น

การอัปโหลดใหม่จะส่งคืน CIDv1 รุ่นใหม่ (bafk… สำหรับเนื้อหาบล็อกเดียวขนาดเล็ก, bafy… สำหรับไฟล์และไดเรกทอรีขนาดใหญ่กว่า) ตามโปรไฟล์ IPIP-0499 unixfs-v1-2025 — ชิ้นข้อมูลขนาด 1 MiB พร้อม raw leaves CID แบบเก่า Qm… จากการอัปโหลดก่อนหน้ายังคงแก้ไข (resolve) ได้อย่างสมบูรณ์และยังใช้งานได้กับทุก endpoint

ทางเลือกในแดชบอร์ด

หน้า /upload ของแดชบอร์ดรองรับการลากและวางสำหรับไฟล์, โฟลเดอร์ (ที่ถูกแพ็กเป็นไดเรกทอรี UnixFS ในเบราว์เซอร์) และไฟล์เก็บถาวร .car — ทั้งหมดจะส่งผ่าน endpoint เดียวกันนี้ ดู การนำเข้า CAR สำหรับรายละเอียดเส้นทาง CAR

เปลี่ยนชื่อไฟล์

PUT /files/:cid/name

อัปเดตชื่อที่แสดงบนไฟล์ CID จะไม่เปลี่ยนแปลง — มันเป็นแฮชของเนื้อหา — มีเพียงป้ายกำกับที่คุณเห็นในรายการไฟล์ของคุณเท่านั้นที่เปลี่ยน

เนื้อหาคำขอ

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
namestringใช่ชื่อที่แสดงใหม่ 1-200 ตัวอักษร ต้องไม่มีตัวคั่นพาธ (/, \) ชื่อที่มีแต่ช่องว่างจะถูกปฏิเสธ

ตัวอย่างคำขอ

bash
curl -X PUT https://api.ipfs.ninja/files/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi/name \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Season 1 promo art" }'

การตอบกลับ 200 OK

json
{
  "success": true,
  "cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
  "name": "Season 1 promo art"
}

แดชบอร์ด

หน้า Files มีรายการ Rename ในเมนูการกระทำของแต่ละแถวไฟล์ (ปุ่มสามจุด) ให้ผลลัพธ์เดียวกัน ไม่ต้องเขียนโค้ด

แสดงรายการไฟล์

GET /upload/list

เรียกดูรายการไฟล์ IPFS ที่คุณอัปโหลดในช่วงเวลาที่กำหนด

พารามิเตอร์คิวรี

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
fromnumberใช่เวลาเริ่มต้นของช่วงเวลา, Unix timestamp เป็น milliseconds
tonumberใช่เวลาสิ้นสุดของช่วงเวลา, Unix timestamp เป็น milliseconds

ตัวอย่างคำขอ

bash
curl "https://api.ipfs.ninja/upload/list?from=1704067200000&to=1735689600000" \
  -H "X-Api-Key: bws_your_api_key_here"

การตอบกลับ 200 OK

json
[
  {
    "cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
    "fileName": "Test upload",
    "fileType": "json",
    "sizeMB": 0.001,
    "createdAt": 1711036800000,
    "metadata": {
      "project": "my-app",
      "environment": "production"
    },
    "uris": {
      "ipfs": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
      "url": "https://ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
    }
  }
]

รับข้อมูลไฟล์

GET /file/:cid

เรียกดู metadata สำหรับไฟล์ที่อัปโหลดเฉพาะโดย CID

พารามิเตอร์ path

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
cidstringใช่ตัวระบุเนื้อหา IPFS ของไฟล์

ตัวอย่างคำขอ

bash
curl https://api.ipfs.ninja/file/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi \
  -H "X-Api-Key: bws_your_api_key_here"

การตอบกลับ 200 OK

json
{
  "cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
  "fileName": "Test upload",
  "fileType": "json",
  "sizeMB": 0.001,
  "createdAt": 1711036800000,
  "uris": {
    "ipfs": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
    "url": "https://ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
  }
}