Digitalocean block storage مقابل amazon S3

لقد تلقيت تحذيرًا في سطر الأوامر بشأن مساحة القرص قبل إعادة بناء الحاوية أثناء تثبيت إضافة Discourse. اضطرتني إلى تشغيل بعض الأوامر لإزالة بعض إصدارات لينكس الأقدم من قطرة DigitalOcean الخاصة بي، لكنني لا أزال أستهلك أكثر من 50% من سعة القرص الصلب من نوع SSD.

مع نمو موقعي الإلكتروني على Discourse، بدأت أفكر في حلول التخزين. أنا حالياً أستخدم قطرة DigitalOcean بسعر 5 دولارات، وقد قرأت بعض المعلومات حول تخزين الكتل في DigitalOcean وAmazon S3. أرى أن إعدادات S3 مدمجة في إعدادات Discourse، لذا أفترض أنها أسهل في الإعداد.

ما الذي تستخدمونه لمواقعكم الإلكترونية؟ أيهما يوفر سرعة تحميل أفضل: S3 أم تخزين الكتل في DigitalOcean؟ وأي خيار أرخص؟ ألا يجعل المستوى المجاني من S3 الخيار أرخص من تخزين الكتل في DigitalOcean؟ هل تخزنون الصور والنسخ الاحتياطية معًا؟ أم أنكم توصون بخيار آخر خارج نطاق DigitalOcean وAmazon؟

مرحبًا،

هناك العديد من الموفِّرين الذين يقدمون حلول تخزين متوافقة مع S3. يمكنك استخدام أيٍّ منها. لقد جربتُ بعضًا منها وأستطيع أن أوصي بأن Spaces من Digital Ocean يعمل بشكل ممتاز.

إذا كنت تستضيف بالفعل على DO، فإنني أنصحك بالذهاب مع Spaces لأنه سريع وموثوق.

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

راجع هذا الموضوع لمزيد من المعلومات:

S3 هي بالتأكيد الحل الأكثر نضجًا واختبارًا، ولكن من حيث السعر، قد يكون عرض DigitalOcean منطقيًا لمجتمعك.

بغض النظر عن ما تختاره، يجب عليك بالتأكيد وضع شبكة توصيل محتوى (CDN) أمام الـ bucket، لذا لا تنسَ ذلك.

هل ستعمل النسخة المجانية من Cloudflare كـ CDN أمام الـ bucket؟ أنا أستخدمهم بالفعل مع إعدادات النطاق الخاص بي للحصول على حماية مجانية ضد هجمات DDoS.

لاحظت أن DigitalOcean تروج لخدمة Spaces الخاصة بها بأنها أرخص من مقدمي الخدمات المعروفين الآخرين. لذا فإن هذا بالتأكيد ميزة إضافية.

بما أن الـ CDN المرفق مع DigitalOcean Spaces لا يعمل بشكل صحيح مع Discourse، فأنا أفكر في التوجه إلى أحد مقدمي الخدمات الآخرين في قائمتك. بهذه الطريقة، لن أضطر للدفع مقابل DigitalOcean Spaces وخدمة CDN منفصلة.

سأنشر هذا هنا، لأن الرابط Configure an S3 compatible object storage provider for uploads مضبوط على حذف جميع الردود بعد شهر.

إن غياب ترميز المحتوى في تنفيذ شبكة CDN الخاصة بـ DO هو بالتأكيد أمر محبط، لكنه يحدث فقط عند تعيين جميع معاملات S3 داخل app.yml. إذا تم تعيين هذه المعاملات في إعدادات الموقع عبر وحدة تحكم المسؤول على الويب، فإن DO تخدم فقط تحميلات S3 عبر شبكة CDN، بينما تظل أصول الموقع مُقدمة من المصدر الأصلي.

يبدو أن هذا مقصود، لأن متغير البيئة DISCOURSE_S3_CDN_URL، إذا تم تعيينه في app.yml، يتجاوز إعداد شبكة CDN للأصول أيضًا، بينما لا يفعل نفس الإعداد عند الإعلان عنه في إعدادات الموقع فقط؟

هذا غير متسق بعض الشيء، لكنه يسمح باستخدام شبكة CDN الخاصة بـ DO لتحميلات S3 فقط، دون تعطيل الموقع:

هناك طريقتان للقيام بذلك:

  • إعلان جميع إعدادات S3 في إعدادات الموقع فقط
rails c
SiteSetting.s3_upload_bucket="<bucket_name>/<uploads_folder>"
SiteSetting.s3_backup_bucket="<bucket_name>/<backups_folder>"
SiteSetting.enable_s3_uploads=true
SiteSetting.s3_access_key_id="<key>"
SiteSetting.s3_secret_access_key="<secret_key>"
SiteSetting.s3_endpoint="https://<sfo2>.digitaloceanspaces.com"
SiteSetting.s3_cdn_url="https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>"
SiteSetting.backup_location="s3"
  • إخفاء جميع إعدادات S3 ما عدا DISCOURSE_S3_CDN_URL في app.yml، وإعلان شبكة CDN الخاصة بـ DO في SiteSetting.s3_cdn_url
  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: <sfo2>
  DISCOURSE_S3_ENDPOINT: https://<sfo2>.digitaloceanspaces.com
  DISCOURSE_S3_ACCESS_KEY_ID: <key>
  DISCOURSE_S3_SECRET_ACCESS_KEY: <secret_key>
#  DISCOURSE_S3_CDN_URL: https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>
  DISCOURSE_S3_BUCKET: <bucket_name>/<uploads_folder>
  DISCOURSE_S3_BACKUP_BUCKET: <bucket_name>/<backup_folder>
  DISCOURSE_BACKUP_LOCATION: s3
rails c
SiteSetting.s3_cdn_url="https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>"

@falco إذا كنت توافق على هذا، يمكنني تحديث موضوع الويكي الأصلي.

لا أعتقد أن ذلك فكرة جيدة.

  1. جميع الموردين الآخرين، حتى AWS، يتطلبون استخدام شبكة توصيل المحتوى (CDN). أن تقدم DigitalOcean خدمة CDN مجانية معطلة هو مجرد غرابة يمكننا تجاهلها والتعامل معها كخدمة تخزين كائني قياسية.

  2. لست متأكدًا من أن تفاصيل التنفيذ المتمثلة في تعيين S3 CDN URL في ملف yml وإعدادات الموقع مما يؤدي إلى سلوكيات مختلفة هو شيء نرغب في الترويج له، حيث يمكن إصلاحه في أي وقت.

لم أجرب ذلك، لكنني أستطيع التأكيد على أنها تعمل مع خدمات CDN حقيقية، مثل KeyCDN وCloudfront وStackPath وغيرها.