Xác nhận đã tải tệp
media.upload.completeMCP:media_upload_completeBộ công cụ: Hội thoạiAfter PUT to upload_url: checks the file really arrived and returns the attachment (real size, kind) ready for inbox_message_send.
Quyền: Nhắn tin
Gọi bằng REST v2
curl -X POST https://zl.builera.app/api/public/v2/ops/media.upload.complete \
-H "Authorization: Bearer za_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"storagePath":"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f/staging/anh.jpg"}'Mỗi khoá/kết nối tối đa 300 lệnh đọc và 60 lệnh ghi mỗi phút. Gọi lại cùng Idempotency-Key trả đúng kết quả cũ, không làm lại.
Gọi qua MCP
{
"method": "tools/call",
"params": {
"name": "media_upload_complete",
"arguments": {
"storagePath": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f/staging/anh.jpg"
}
}
}Thêm https://zl.builera.app/mcp vào ứng dụng AI rồi cho phép kết nối; AI chỉ thấy công cụ trong bộ bạn chọn.
Kết quả
HTTP 200
{ "status": "succeeded", "operationId": "…", "data": { … } }Ví dụ đầu vào
{
"storagePath": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f/staging/anh.jpg"
}Thay mã (id) mẫu bằng mã thật lấy từ các thao tác liệt kê/tìm kiếm.
Lược đồ đầu vào (JSON Schema)
{
"type": "object",
"properties": {
"storagePath": {
"type": "string",
"minLength": 3,
"maxLength": 500
},
"width": {
"type": "integer"
},
"height": {
"type": "integer"
},
"durationMs": {
"type": "integer"
}
},
"required": [
"storagePath"
],
"additionalProperties": false
}