المقدمة
قم بتحميل وإدارة الملفات في التخزين السحابي مع تحسين تلقائي.
🎯 ماذا يفعل هذا الموديل؟
يتيح لك موديل FileUploading تحميل واسترجاع وحذف الملفات في تخزين OneEntry السحابي - الصور، PDF، الفيديوهات، المستندات، وأي نوع من الملفات مع تحسين تلقائي وتوصيل عبر CDN.
فكر في الأمر كمدير تخزين سحابي خاص بك - تقوم بتحميل الملفات مرة واحدة، وOneEntry يخزنها، ويحسن الصور تلقائيًا، ويقدمها بسرعة عبر CDN.
📖 شرح بسيط
تخيل أنك تبني تطبيقًا حيث يمكن للمستخدمين:
- 📸 تحميل صور الملف الشخصي - إعادة الحجم وتحسين تلقائي
- 📄 تحميل المستندات - تخزين PDF وDOC بأمان
- 🖼️ تحميل صور المنتجات - صور متعددة لكل منتج
- 🎥 تحميل الفيديوهات - تخزين وبث محتوى الفيديو
- 📎 تحميل المرفقات - أي نوع من الملفات
بدلاً من إدارة التخزين الخاص بك:
- ✅ قم بتحميل الملفات إلى سحابة OneEntry
- ✅ تحسين تلقائي للصور (إعادة الحجم، ضغط)
- ✅ توصيل سريع عبر CDN في جميع أنحاء العالم
- ✅ تنظيم حسب نوع الكيان (منتج، مستخدم، صفحة)
- ✅ الحصول على روابط تحميل على الفور
- ✅ حذف الملفات عند عدم الحاجة إليها
مثال من العالم الحقيقي:
بدون FileUploading (يدوي):
- إعداد دلو AWS S3 ❌
- تكوين CDN ❌
- كتابة كود تحسين الصور ❌
- إدارة أذونات الملفات ❌
- توليد روابط موقعة ❌
مع FileUploading (تلقائي):
- تحميل الملف → الحصول على رابط التحميل ✅
- الصور محسنة تلقائيًا ✅
- توصيل CDN مدمج ✅
- إدارة ملفات سهلة ✅
✨ ا لمفاهيم الأساسية
ما هو تحميل الملفات؟
تحميل الملفات هو تخزين الملفات في التخزين السحابي:
- تحميل - إرسال الملف إلى سحابة OneEntry
- التخزين - الملفات مخزنة بأمان في السحابة
- CDN - توصيل سريع من الخوادم القريبة من المستخدمين
- التحسين - الصور مضغوطة ومعدلة تلقائيًا
- الرابط - الحصول على رابط تحميل دائم
أنواع الملفات المدعومة
قم بتحميل أي نوع من الملفات:
| الفئة | أنواع الملفات | التحسين التلقائي |
|---|---|---|
| الصور | JPG، PNG، GIF، WebP، SVG | نعم (إعادة الحجم، ضغط) |
| المستندات | PDF، DOC، DOCX، XLS، XLSX | لا (تخزين كما هي) |
| الفيديوهات | MP4، MOV، AVI، WebM | لا (تخزين كما هي) |
| الأرشيفات | ZIP، RAR، TAR، GZ | لا (تخزين كما هي) |
| أخرى | أي نوع من الملفات | لا (تخزين كما هي) |
تحسين الصور
عند تحميل الصور، يمكن لـ OneEntry:
- 📐 إعادة الحجم - تقليل الأبعاد (على سبيل المثال، الحد الأقصى 1920 بكسل عرض)
- 🗜️ ضغط - تقليل حجم الملف (أصغر، أسرع)
- 🖼️ تنسيق - تحويل إلى تنسيق مثالي (WebP)
- 📱 استجابة - إنشاء أحجام متعددة
مثال:
الأصلي: 5MB، 4000x3000px
↓ (تحسين تلقائي)
المحسن: 200KB، 1920x1440px
📋 ما تحتاج إلى معرفته
معلمات التحميل
عند تحميل الملفات، يمكنك تحديد:
await FileUploading.upload(file, {
entity: 'product', // نوع الكيان (مطلوب)
id: 123, // معرف الكيان (اختياري)
type: 'image', // تلميح نوع الملف (اختياري)
width: 1920, // الحد الأقصى للعرض للصور (اختياري)
height: 1080, // الحد الأقصى للارتفاع للصور (اختياري)
compress: true // ضغط الصور (اختياري)
});
شرح المعلمات:
file- كائن الملف (من الإدخال أو السحب والإفلات)entity- الفئة:product،page،block،user،form،generalid- معرف الكيان لربط الملف به (على سبيل المثال، معرف المنتج)type- تلميح نوع الملف (عادة ما يتم اكتشافه تلقائيًا)width- الحد الأقصى للعرض بالبكسل (للصور فقط)height- الحد الأقصى للارتفاع بالبكسل (للصور فقط)compress- تمكين الضغط (للصور فقط)
استجابة التحميل
بعد التحميل، ستحصل على:
{
filename: "abc123-photo.jpg", // اسم الملف الفريد
downloadLink: "https://cdn.../photo.jpg", // رابط CDN
size: 204800, // حجم الملف (بايت)
}
الحقول المهمة:
downloadLink- استخدم هذا الرابط في علامات<img>،<a>،<video>filename- احفظ هذا لحذف الملف لاحقًاsize- حجم الملف بالبايت (204800 بايت = 200KB)
أفضل الممارسات لتنظيم الملفات
نظم الملفات حسب نوع الكيان
خيارات تحسين الصور
تحكم في كيفية تحسين الصور:
| الخيار | ماذا يفعل | المثال |
|---|---|---|
| width | الحد الأقصى للعرض (يحافظ على نسبة العرض إلى الارتفاع) | width: 1920 |
| height | الحد الأقصى للارتفاع (يحافظ على نسبة العرض إلى الارتفاع) | height: 1080 |
| compress | تقليل حجم الملف | compress: true |
نسبة العرض إلى الارتفاع محفوظة:
الأصلي: 4000x3000 (نسبة 4:3)
مع العرض: 800
النتيجة: 800x600 (لا تزال نسبة 4:3)
حذف الملفات
قم دائمًا بتوفير الكيان، المعرف، واسم الملف للحذف:
await FileUploading.delete({
entity: 'product',
id: productId,
filename: 'abc123-photo.jpg'
});
لماذا الثلاثة جميعًا؟ يتم تنظيم الملفات حسب الكيان → المعرف → اسم الملف.
📊 جدول مرجعي سريع - الطرق
| الطريقة | ماذا تفعل | متى تستخدم |
|---|---|---|
| upload() | تحميل ملف إلى التخزين السحابي | يقوم المستخدم بتحميل صورة، مستند |
| getFile() | الحصول على معلومات الملف (الحجم، النوع، الرابط) | تحقق مما إذا كان الملف موجودًا |
| delete() | حذف ملف من التخزين | إزالة الملفات القديمة |
❓ الأسئلة الشائعة (FAQ)
ما هي أنواع الملفات التي يمكنني تحميلها؟
أي نوع من الملفات مدعوم:
- الصور: JPG، PNG، GIF، WebP، SVG، BMP، TIFF
- المستندات: PDF، DOC، DOCX، XLS، XLSX، PPT، TXT
- الفيديوهات: MP4، MOV، AVI، WebM، MKV
- الأرشيفات: ZIP، RAR، TAR، GZ
- أخرى: أي نوع من الملفات
فقط الصور يتم تحسينها تلقائيًا. يتم تخزين الملفات الأخرى كما هي.
ما هو الحد الأقصى لحجم الملف؟
تحقق من حدود خطة OneEntry الخاصة بك. عادةً:
- الخطة المجانية: 5MB لكل ملف
- الخطط المدفوعة: 50MB - 100MB لكل ملف
أفضل ممارسة: تحسين الصور قبل التحميل لتقليل الحجم.
هل يتم تخزين الملفات بشكل دائم؟
نعم، يتم تخزين الملفات حتى تقوم بحذفها يدويًا باستخدام FileUploading.delete().
مهم: قم بتنظيف الملفات غير المستخدمة لتوفير مساحة التخز ين.
هل يمكنني تحميل الملفات من الواجهة الأمامية (المتصفح)؟
نعم! استخدم إدخال الملف أو السحب والإفلات.
كيف يمكنني التحقق من صحة الملفات قبل التحميل؟
تحقق من نوع الملف والحجم.
هل يمكنني الحصول على قائمة بجميع الملفات المحملة لكائن؟
ليس مباشرةً مع هذه SDK. تحتاج إلى:
- تتبع أسماء الملفات عند التحميل (احفظها في قاعدة البيانات)
- استخدم واجهة برمجة تطبيقات OneEntry Admin لعرض الملفات
أفضل ممارسة: احفظ أسماء الملفات المحملة في قاعدة البيانات الخاصة بك.
كيف أتعامل مع أخطاء التحميل؟
استخدم دائمًا try/catch.
هل يمكنني تحميل الملفات إلى CDN مباشرة؟
لا، يتم تحميل الملفات عبر واجهة برمجة تطبيقات OneEntry، والتي:
- تتحقق من صحة الملف
- تحسن الصور (إذا تم تمكينها)
- تخزن في السح ابة
- تعيد رابط CDN
هذا يضمن الأمان والتحسين.
ماذا يحدث للملفات إذا قمت بحذف كائن (منتج، مستخدم)؟
تظل الملفات في التخزين حتى إذا تم حذف الكائن.
أفضل ممارسة: احذف الملفات قبل حذف الكائن.
هل يمكنني تغيير حجم الصور إلى أبعاد دقيقة؟
لا، يتم دائمًا الحفاظ على نسبة العرض إلى الارتفاع لمنع التشويه.
كيف يعمل:
- تقوم بتعيين
width: 800، height: 600 - يتم تغيير حجم الصورة لتناسب داخل 800x600
- يتم الحفاظ على نسبة العرض إلى الارتفاع
مثال:
الأصلي: 1000x500 (نسبة 2:1)
مع العرض: 800، الارتفاع: 600
النتيجة: 800x400 (لا تزال 2:1، تناسب داخل 800x600)