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

السؤال

نشر

السلام عليكم
عندي سؤال فضولى
هل يمكن اعتماد طريقه رفع الصور وعرفها باستخدام قاعدة البيانات
حيث اننا نحول الصورة الى كود BASE64 ويحفظ في قاعدة البيانات وعند عرضها تجلب شيفرة الصورة وتعرض
فكرة وقت ان هذه الطريقه ستجعل هناك بطأ في حركه البيانات لان عند تحويل الصورة ل BASE64 تتحول الى نصوص وارقام واحرف كثيييييرة كشيفرة تبطا من حركه الاستعلام
هل هذا صحيح ام انه يمكن الاعتماد عليها
وشكرا

Recommended Posts

  • 0
نشر

إن الطريقة المنصوح بها هي عدم حفظ الصور بشكل مباشر في قاعدة البيانات، بدلاً عن ذلك يتم حفظ الصور في وسائط تخزين على السحاب و تخزين معرف الصورة فقط في قاعدة البيانات، معرف الصور غالباً يكون إما رابط للصورة أو uuid ، يمكن أن يأخذ أشكال أخرى و لكن بشكل عام يكون صغير الحجم.

يمكن التخزين على السحاب باستعمال عدة خدمات تقدمها شركات كبيرة، أشهرها AWS حيث تحتوي على وسائط تخزين تأتي بخيارات عديدة يمكنك الاختيار بينها حسب حجم البيانات و سرعة الوصول التي تريدها، شخصياً لقد قمت بتجريب هذه الخدمة، و كان جلب الصور سريع جداً، بالطبع يفضل وجود CDN لتسريع العملية و لكن لم ألاحظ أي بطئ.

إن كافة الشركات التي تقدم خدمات سحابية تقدم خدمات تخزين.

في حال كنت لا تملك ميزانية، هناك خدمات مجانية، مثلاً cloudinary ، هذه الخدمة جيدة جداً، و قد تعاملت معها قبل تحويل الصور إلى AWS و أيضاً لم ألاحظ بطء.

و لكن في حال كانت الصور التي تخزنها ليست بأبعاد كبيرة، كما أنه لا يوجد الكثير من الصور التي تريد سحبها، فلا أعتقد أنك ستلاحظ الفرق الكبير بين الطريقتين، و لكن من الجيد تعلم الطريقة المثلى، فهي تعطيك خبرة أكثر كما أنها تشكل إضافة مميزة إلى أعمالك.

  • 0
نشر
بتاريخ الآن قال أحمد مصطفى كامل:

انا اعرف ذلك
لكن عندنما استخدمت summernote
وجدت انها تخزن الصورة على شكل BASE64 في قاعدة البيانات
لهذا قلت هل سيشكل فرقا ام لا
اعتقد انه يمثل حلا بديلا في بعض الاحيان

قد يكون هذا هو الخيار الافتراضي و ذلك لتسهيل الأمور بالنسبة للمستخدمين، لقد قمت بالبحث قليلاً و وجدت أنه يمكنك تخزين الصور من summernote في وحدات التخزين على السحاب، مثل AWS.

أي أنه من الأسهل تجربة المكتبة بالتخزين في قاعدة البيانات و لكن تركوا الخيار لك في حال حدث بطئ يمكنك التحويل إلى التخزين السحابي.

  • 0
نشر

في حال حفظ البيانات في قاعدة البيانات بشكل BASE64 فإن الموقع سيعمل ولكن سيكون بطيء جداً حيث يزيد حجم الصورة عند تحويلها إلى BASE64 وبالتالي بطئ في عملية الحفظ وعملية الاستدعاء كما أن عملية الاستدعاء ستكون من قاعدة البيانات إلى السيرفر ومن ثم من السيرفر إلى المستخدم وبالتالي بطء اكبر.

والافضل هو حفظ البيانات على السيرفر ويمكنك فعل ذلك باستخدام multer في node js وهنالك بدائل له في باقي اللغات.

ولكن لماذا تحفظ الصور في قاعدت البيانات أصلاً ؟

تستطيع حفظ الصور على السيرفر وحفظ رابط الصورة أو اسمها في قاعدة البيانات وهذه هي الطريقة الافضل لحفظ الملفات.

كما يمكنك حفظ الصور في طرف ثالث حيث يوجد شركات خاصة للصور مثل AWS و Cloudinary وهي سهلة الاعداد والاستخدام جداً.

إطلع أيضاً على :

 

 

  • 0
نشر

وجدت فكرة مشابهة لهاته الفكرة عملية جدا وتخدم غرضا لدينا في أحد المشاريع البرمجية مؤخرا أين احتجنا استعمال هاته الصيغة لإرسال البيانات لا لتخزينها.

لأن عيب هاته الطريقة أنها تأخذ مساحة تخزين كبيرة جدا من قاعدة البيانات مقارنة بحفظها في خوادم تخزين سحابية او اقراص تخزين عادية بصيغها الأصلية ك raw binary حيث أن فرق صيغة base64 على raw binary هو حوالي ال 33%، وهو فرق كبير جدا.

سيعني هذا بطئا في الاستعلام حولها، وسينعكس هذا سلبا بالطبع على آداء الموقع.

يمكنك الاستعانة بصيغة base64 لارسال وتبادل البيانات لا أكثر، فإن كان هنالك سبب ما يدفعك الى عدم استعمال data forms فيمكنك تشفير هاته الصور أو الملفات وإرسالها إلى الخادم وترك عملية إلغاء تشفيرها للخادم.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...