Docs

Ne nerede çalışıyor, sırada ne var.

swapfile.io nasıl çalışır

Dönüştürücü ve metadata temizleyici, File API ve canvas kullanarak tamamen tarayıcında çalışır. Dosyan cihazında belleğe okunur, orada işlenir ve oradan indirilir. Tarayıcının açamadığı formatlar için (Safari dışında HEIC gibi) sunucu tarafı bir hat geliyor; o işlerin dosyaları depodan en geç bir saat içinde silinecek.

Veri akışı

yerel araçlardosya → tarayıcın → indirilenler klasörün
sunucu araçları (yakında)dosya → presigned yükleme → worker → indirme bağlantısı → ≤ 1s otomatik silme

API

Dosyaları kendi kodundan bir REST API ile dönüştür. Site ile aynı sunucu hattını kullanır: yüklemeyi kaydedersin, baytları gönderirsin, bir dönüştürme işi başlatırsın ve sonucu indirirsin — hepsi bir API anahtarıyla doğrulanır.

Hesabında bir API anahtarı oluştur

Kimlik doğrulama

Her istek anahtarını Authorization başlığında (Bearer) ya da X-API-Key başlığında taşır. Parola gibi gizli tut — hesabının dönüştürme kotasını harcar.

https://api.swapfile.ioLive
curl https://api.swapfile.io/v1/jobs/{id} \
    -H "Authorization: Bearer sf_live_..."

Bir dosyayı dönüştürme

heic → jpeg
# 1 · register the upload → presigned URL
curl -X POST https://api.swapfile.io/v1/uploads \
    -H "Authorization: Bearer sf_live_..." \
    -H "Content-Type: application/json" \
    -d '{"size": 48213}'
→ {"file_id":"9f2c…","upload_url":"https://…"}

# 2 · send the raw bytes to that URL
curl -X PUT --upload-file photo.heic "$UPLOAD_URL"

# 3 · start the conversion
curl -X POST https://api.swapfile.io/v1/jobs \
    -H "Authorization: Bearer sf_live_..." \
    -H "Content-Type: application/json" \
    -d '{"file_id":"9f2c…","operation":"convert:jpeg","params":{"quality":"82"}}'
→ 202 {"id":"7ab1…","status":"queued"}

# 4 · poll until done, then download
curl https://api.swapfile.io/v1/jobs/7ab1… \
    -H "Authorization: Bearer sf_live_..."
→ {"status":"done","download_url":"https://…"}

Uçlar

POST/v1/uploadsRegister an upload; returns a presigned PUT URL.
PUT{upload_url}Send the raw file bytes (max 100 MB).
POST/v1/jobsStart a conversion job for an uploaded file.
GET/v1/jobs/{id}Job status; includes download_url once done.
DELETE/v1/jobs/{id}Delete the file and job immediately.

İşlemler

Bunlardan birini operation olarak gönder. Kabul edilen girdiler: JPEG, PNG, WebP, GIF, BMP, HEIC, AVIF ve TIFF.

convert:jpeg→ JPEG · params: quality (1–100)
convert:png→ PNG (lossless)
convert:webp→ WebP · params: quality (1–100)

Sınırlar

  • 100 MB max upload
  • 30 conversions / day (free)
  • 60 requests / minute per key
  • Files auto-deleted within 1 hour

Hatalar

Hatalar, kararlı bir code alanı taşıyan RFC 9457 problem+json döner — örn. unauthorized, unsupported_format, file_too_large, quota_exceeded veya rate_limited.

Kendin doğrula

Tarayıcının geliştirici araçlarını aç, ağ sekmesini izle ve bir dosya dönüştür. Dosyanı taşıyan hiçbir istek görmeyeceksin.