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.
https://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ộcAPI key của bạn. Tạo ở trang API Key trong tài khoản.
Content-Typestringbắt buộcapplication/json
Request
fileNamestringbắt buộcTê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ộcLoạ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
uploadUrlstringNơi gửi file lên. Chữ ký nằm sẵn trong URL nên request đó không cần X-Api-Key.
methodstringMethod của request đó: "PUT".
headersobjectGử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.
expiresInnumberSố giây tới khi uploadUrl hết hạn (600). Xin xong thì tải lên luôn.
fileKeystringMã file phía sangtao.ai. Không cần để tạo ảnh.
/images/presigncurl -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
}/images/presigncurl -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
}