Skip to content

Быстрый старт

Загрузите свой первый файл в IPFS менее чем за две минуты.

Страница загрузки с функцией перетаскивания файлов

1. Получите API-ключ

Зарегистрируйтесь на ipfs.ninja с помощью аккаунта Google. API-ключ по умолчанию создаётся автоматически. Перейдите на страницу профиля, чтобы просмотреть и управлять своими API-ключами.

WARNING

Примечание: API-ключи не имеют срока действия. Вы можете создавать несколько ключей и отзывать их по отдельности на странице профиля.

2. Загрузите файл

Отправьте POST-запрос на /upload/new с вашим контентом. Вот пример загрузки JSON-объекта:

curl

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": "My NFT",
      "description": "A permanent file on IPFS",
      "image": "ipfs://bafybeiExampleCID..."
    },
    "description": "NFT metadata"
  }'

JavaScript

javascript
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: {
      name: "My NFT",
      description: "A permanent file on IPFS",
      image: "ipfs://bafybeiExampleCID..."
    },
    description: "NFT metadata"
  })
});

const data = await response.json();
console.log(data.cid);       // "bafybeigdyrzt5..."
console.log(data.uris.url);  // "https://ipfs.ninja/ipfs/bafybeigdyrzt5..."

CIDv1 по умолчанию

Новые загрузки создают современный CIDv1 (bafk… для небольшого одноблочного содержимого, bafy… для файлов большего размера и каталогов) согласно IPIP-0499. Устаревшие CID Qm… из более ранних загрузок по-прежнему разрешаются повсюду — оба формата работают как входные значения для любой конечной точки.

API возвращает CID, размер файла и URI доступа:

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

3. Получите свой файл

Получите доступ к файлу двумя способами:

Через шлюз IPFS (без аутентификации)

bash
curl https://ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

TIP

Apex-шлюз https://ipfs.ninja/ipfs/<CID> обслуживает CID, загруженные или закреплённые любым пользователем IPFS Ninja. CID, неизвестные платформе, возвращают HTTP 410 Gone — для них используйте публичный шлюз (ipfs.io, dweb.link) или сначала выполните POST /pin CID для своего аккаунта.

Через API (возвращает метаданные файла)

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

Ответ:

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

Альтернатива: используйте AWS SDK (S3-совместимый)

Уже используете S3? Направьте существующий AWS SDK на https://s3.ipfs.ninja и используйте свой API-ключ в качестве учётных данных:

javascript
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";

const s3 = new S3Client({
  endpoint: "https://s3.ipfs.ninja",
  credentials: { accessKeyId: "bws_prefix", secretAccessKey: "bws_fullkey" },
  region: "us-east-1",
  forcePathStyle: true
});

await s3.send(new PutObjectCommand({
  Bucket: "my-project",
  Key: "my-file.json",
  Body: JSON.stringify({ hello: "IPFS" })
}));

См. Совместимость с S3 для полной документации с примерами на Python, Go и руководствами по миграции.

Предпочитаете кликать? Используйте панель управления

Если вы не хотите писать код, ipfs.ninja/upload принимает перетаскивание для:

  • Любого файла — перетащите его в зону загрузки, файл закрепляется, и вы получаете CID
  • Папки — упаковывается в директорию UnixFS прямо в вашем браузере, загружается как единый импорт, разрешается по адресу /ipfs/{cid}/{subpath} для каждого дочернего файла
  • Архива .car — определяется автоматически, корневой CID сохраняется в точности (см. Импорт CAR)

После загрузки файлы появляются на странице «Файлы», где вы можете переименовывать их, перемещать между папками, получать CID директории IPFS для целой папки (снимок) и настраивать S3 CORS для отдельного bucket-а для доступа из браузерного SDK.

Следующие шаги