Tài liệu

Cái gì chạy ở đâu, và điều gì sắp tới.

swapfile.io hoạt động thế nào

Trình chuyển đổi và trình dọn siêu dữ liệu chạy hoàn toàn trong trình duyệt của bạn bằng File API và canvas. Tệp của bạn được đọc vào bộ nhớ trên thiết bị, xử lý ở đó và tải xuống từ đó. Với các định dạng mà trình duyệt không thể giải mã (như HEIC ngoài Safari), một quy trình phía máy chủ đang được phát triển; những tác vụ đó sẽ bị xóa khỏi bộ lưu trữ trong vòng một giờ.

Luồng dữ liệu

công cụ cục bộtệp → trình duyệt của bạn → thư mục tải xuống của bạn
công cụ máy chủ (sắp có)tệp → tải lên có ký sẵn → worker → liên kết tải xuống → tự xóa ≤ 1h

API

Chuyển đổi tệp từ mã của riêng bạn với một REST API. Nó chạy cùng quy trình máy chủ như trang web: bạn đăng ký một lần tải lên, gửi các byte, khởi động một tác vụ chuyển đổi, rồi tải xuống kết quả — tất cả được xác thực bằng một khóa API.

Tạo một khóa API trong tài khoản của bạn

Xác thực

Mọi yêu cầu mang khóa của bạn trong header Authorization (Bearer), hoặc một header X-API-Key. Hãy coi nó như mật khẩu — nó tiêu tốn hạn mức chuyển đổi của tài khoản bạn.

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

Chuyển đổi một tệp

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://…"}

Các endpoint

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.

Các thao tác

Truyền một trong các giá trị này làm thao tác. Đầu vào được chấp nhận gồm JPEG, PNG, WebP, GIF, BMP, HEIC, AVIF và TIFF.

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

Giới hạn

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

Lỗi

Thất bại trả về problem+json theo RFC 9457 với một trường code ổn định — ví dụ unauthorized, unsupported_format, file_too_large, quota_exceeded hoặc rate_limited.

Tự kiểm chứng

Mở công cụ phát triển của trình duyệt, theo dõi tab network và chuyển đổi một tệp. Bạn sẽ không thấy yêu cầu nào mang theo tệp của bạn.