Upload qua presign
https://sangtao.ai/api/v2/images/presignUpload ảnh tới 25 MB và nhận về URL, dùng làm ảnh tham chiếu.
Hai lượt gọi: xin một link, rồi gửi file lên chính link đó. File đi thẳng lên kho lưu trữ chứ không qua máy chủ của chúng tôi, nên đường này nhận file tới 25 MB.
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ộcimage/png · image/jpeg · image/webp
Response
sasUrlstringNơi để PUT file lên. Chữ ký đã nằm sẵn trong URL nên request đó không cần X-Api-Key — nhưng bắt buộc có cả x-ms-blob-type: BlockBlob và Content-Type. Link hết hạn sau vài phút, xin xong thì tải lên luôn.
publicUrlstringĐịa chỉ ảnh sẽ nằm sau khi tải lên. Đây chính là giá trị truyền vào referenceImages.
blobPathstringVị trí file trong kho lưu trữ. Hữu ích nếu bạn tự lập chỉ mục ảnh đã tải lên; không cần để sinh ảnh.
/images/presigncurl -X POST \
https://sangtao.ai/api/v2/images/presign \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"fileName": "design.png",
"contentType": "image/png"
}'{
"success": true,
"data": {
"sasUrl": "https://sangtaoai.blob.core.windows.net/content/.../design.png?sv=...&sig=...",
"blobPath": "284c42a4-.../745c53c6-....png",
"publicUrl": "https://sangtaoai.blob.core.windows.net/content/.../design.png"
},
"error": null,
"errorCode": null
}/images/presigncurl -X POST \
https://sangtao.ai/api/v2/images/presign \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"fileName": "design.png",
"contentType": "image/png"
}'{
"success": true,
"data": {
"sasUrl": "https://sangtaoai.blob.core.windows.net/content/.../design.png?sv=...&sig=...",
"blobPath": "284c42a4-.../745c53c6-....png",
"publicUrl": "https://sangtaoai.blob.core.windows.net/content/.../design.png"
},
"error": null,
"errorCode": null
}