sangtao.ai
API key

Upload ảnh tham chiếu

Upload qua presign

Upload ảnh tới 25 MB và nhận về URL, dùng làm ảnh tham chiếu.

POSThttps://api.sangtao.ai/v2/images/presign

Ảnh tải lên ở đây chỉ lưu tạm để làm ảnh tham chiếu (referenceImages) cho lần tạo ảnh ngay sau đó, và tự xoá sau 1 ngày. Muốn lưu lâu dài để dùng lại, hãy dùng kho asset. Nhận file tới 25 MB, qua hai lượt gọi: xin link, rồi PUT file lên link đó.

Headers

X-Api-Keystringbắt buộc

API key của bạn. Tạo ở trang API Key trong tài khoản.

Content-Typestringbắt buộc

application/json

Request

fileNamestringbắt buộc

Tên tuỳ ý — chỉ phần đuôi có ý nghĩa, vì nó quyết định cách file được trả về sau này.

contentTypestringbắt buộc

Loại ảnh. Loại khác bị từ chối với 400 UNSUPPORTED_FILE_TYPE.

Giá trị nhận:image/pngimage/jpegimage/webp

Response

uploadUrlstring

Nơi gửi file lên. Chữ ký nằm sẵn trong URL nên request đó không cần X-Api-Key.

methodstring

Method của request đó: "PUT".

headersobject

Gửi đúng các header này kèm file — Content-Type, và x-ms-blob-type khi có. Đọc từ đây thay vì viết cứng trong code.

urlstring

Địa chỉ ảnh sau khi tải lên: truyền vào referenceImages.

expiresInnumber

Số giây tới khi uploadUrl hết hạn (600). Xin xong thì tải lên luôn.

fileKeystring

Mã file phía sangtao.ai. Không cần để tạo ảnh.

POST/images/presign
curl -X POST \
  https://api.sangtao.ai/v2/images/presign \
  -H "X-Api-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fileName": "design.png",
    "contentType": "image/png"
  }'

# Then send the file to data.uploadUrl with data.method,
# adding every header in data.headers
{
  "success": true,
  "data": {
    "uploadUrl": "https://…/ref-uploads/…/745c53c6-….png?sv=…&sig=…",
    "method": "PUT",
    "headers": {
      "Content-Type": "image/png",
      "x-ms-blob-type": "BlockBlob"
    },
    "url": "https://cdn.sangtao.ai/ref-uploads/…/745c53c6-….png",
    "expiresIn": 600,
    "fileKey": "284c42a4-…/745c53c6-….png"
  },
  "error": null,
  "errorCode": null
}