اذهب إلى المحتوى

السؤال

نشر

السلام عليكم ورحمة الله وبركاته،

عند رفع صورة في مشروع مبني باستخدام Express وTypeScript، كنت أتّبع الخطوات التالية:

  1. رفع الصورة مؤقتًا على الخادم المحلي باستخدام Multer.
  2. رفع الصورة إلى Cloudinary والحصول على كلٍّ من publicId وsecureUrl.
  3. حذف الصورة من المسار المحلي بعد رفعها.

وقد كانت هذه الطريقة تعمل بشكل جيد أثناء مرحلة التطوير المحلي (Development).
لكن عند نشر المشروع على منصات استضافة مجانية مثل Render، لم تعد العملية تنجح، رغم أن عملية البناء (Build) تتم بنجاح.

لا أعلم ما إذا كانت المشكلة ناتجة عن الطريقة التي استخدمتها،
وأتساءل إن كانت هناك حلول بديلة تضمن عمل رفع الصور بشكل صحيح في بيئة الإنتاج (Production)؟

شكرا لكم.

Recommended Posts

  • 0
نشر

 Render  ومثيلاتها Heroku، Vercel، Fly.io تستخدم Ephemeral Filesystem أي نظام ملفات مؤقت، بالتالي لا يمكن الكتابة على القرص بشكل دائم، الملفات المؤقتة تُحذف في أي وقت وليس لديك صلاحيات الكتابة في بعض المجلدات.

أبسط حل هو استخدام Memory Storage في Multer حيث لا يتم إنشاء ملف على القرص إطلاقاً، بل يبقى كل شيء فى الـ RAM،  يناسب أغلب الاستضافات المجانية.

أو الرفع المباشر على cloudinary عن طريق Signed Upload.

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...