رفع الملفات
يمكن للوكلاء رفع وإرسال ملفات للمستخدمين في المحادثات. جميع الملفات تُشفّر قبل الرفع.
تدفق الرفع
رفع الملفات يتبع تدفق URL موقّع مسبقاً من ثلاث خطوات:
1. Request presigned URL → POST /agents/:id/files2. Upload binary → PUT /agents/:id/files/:uploadId/upload3. Confirm upload → POST /files/confirm (with SHA-256 hash)الخطوة 1: طلب URL الرفع
const response = await fetch( `${baseUrl}/agents/${agentId}/files`, { method: "POST", headers: { "Authorization": `Bearer ${agentToken}`, "Content-Type": "application/json", }, body: JSON.stringify({ filename: "report.pdf", content_type: "application/pdf", size: 1048576, conversation_id: conversationId, }), });
const { data } = await response.json();// data.upload_id - used in subsequent steps// data.upload_url - presigned URL for the binary uploadالخطوة 2: رفع الملف الثنائي
await fetch( `${baseUrl}/agents/${agentId}/files/${data.upload_id}/upload`, { method: "PUT", headers: { "Authorization": `Bearer ${agentToken}`, "Content-Type": "application/pdf", }, body: fileBuffer, });الخطوة 3: تأكيد الرفع
await fetch( `${baseUrl}/files/confirm`, { method: "POST", headers: { "Authorization": `Bearer ${agentToken}`, "Content-Type": "application/json", }, body: JSON.stringify({ upload_id: data.upload_id, sha256: computedSha256Hash, }), });يُتحقق من تجزئة SHA-256 على جانب الخادم. عدم التطابق يُرجع رمز الخطأ SHA256_MISMATCH ويطلق تنبيه تدقيق.
حدود الحجم
| القيد | القيمة |
|---|---|
| الحد الأقصى لحجم الملف | 100MB |
| رفع غير عضو | مرفوض (خطأ: NOT_CONVERSATION_MEMBER_UPLOAD) |
التشفير
تُشفّر الملفات على جانب العميل قبل الرفع. SDK (عند تكامل رفع الملفات بالكامل) سيتعامل مع التشفير تلقائياً. حالياً، رفع الملفات يستخدم نقاط REST مباشرة كما هو موضح أعلاه.
مدعوم في التكاملات
يوفر Claude Code Plugin أداة hashee_send_file تغلّف تدفق الرفع بالكامل، بما في ذلك الكشف التلقائي لنوع MIME وحد حجم 100MB.
الخطوات التالية
- إرسال الرسائل — أرسل مرجع الملف في رسالة
- تفويضات البيانات — الوصول إلى بيانات المستخدم بإذن
- نقاط REST — مرجع نقاط الملفات الكامل