تكوين موفر تخزين كائنات متوافق مع S3 للتحميلات

سأحاول تلخيص إجابات أسئلتي:

  • هل تتعارض واجهة المستخدم الرسومية للويب ومتغيرات البيئة؟

إذا استخدمت متغيرات البيئة (وهو ما يجب عليك فعله)، فلن تكون تلك الإعدادات مرئية بعد الآن في واجهة المستخدم الرسومية للويب.

  • متى يفترض تحميل الأصول إلى الحاوية؟
    بإضافة هذا المقطع إلى app.yml في قسم الخطاف (hook)، سيتم تحميله بعد after_assets_precompile (أثناء إعادة بناء التطبيق).
 after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets
  • كيف يمكنني تصحيح هذا؟ لا أرى أي خطأ في السجلات
    عن طريق تشغيل:
cd /var/discourse
sudo ./launcher enter app
sudo -E -u discourse bundle exec rake s3:upload_assets --trace
  • هل من الممكن تعيين مجلد فرعي للحاوية في الإعداد؟

هل أحتاج حقًا إلى استخدام حاويات منفصلة للتحميلات والنسخ الاحتياطي؟

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

  1. حاويات مختلفة
  • s3_upload_bucket: your-uploads-bucket
  • s3_backup_bucket: your-backups-bucket
  1. بادئات مختلفة
  • s3_upload_bucket: your-uploads-bucket/uploads
  • s3_backup_bucket: your-uploads-bucket/backups

يمكنك استخدام البادئات لتنظيم البيانات التي تخزنها في حاويات Amazon S3. البادئة هي سلسلة من الأحرف في بداية اسم مفتاح الكائن. يمكن أن تكون البادئة بأي طول، تخضع للحد الأقصى لطول اسم مفتاح الكائن (1,024 بايت). يمكنك التفكير في البادئات كطريقة لتنظيم بياناتك بطريقة مشابهة للمجلدات. ومع ذلك، فإن البادئات ليست مجلدات.

  • بمجرد نجاح هذا، هل يتم نقل الصور التي تم تحميلها سابقًا إلى الحاوية؟ إذا قمت بإعادة التحميل، كيف ستبدو عناوين URL للصور التي تم تحميلها سابقًا؟

لقد قمت بتمكين تحميلات S3 في مثيل Discourse الخاص بي (والذي يعمل منذ فترة)؛ ماذا أفعل مع التحميلات المحلية الحالية؟

لترحيل التحميلات الحالية إلى S3، يمكنك إجراء عدد قليل من مهام rake. للقيام بذلك، تحتاج إلى وصول SSH، وأذونات الجذر، وأن تكون قد دخلت إلى تطبيق discourse (وفقًا لـ عمليات الإدارة المجمعة). أوه، و عليك تعيين بعض متغيرات البيئة في app.yml. ليس للمبتدئين.

بمجرد الانتهاء من كل ذلك، تكون جاهزًا لمهام rake:

rake uploads:migrate_to_s3
rake posts:rebake

بمجرد الانتهاء من هذه (وتعمل التحميلات بشكل جيد)، لن تحتاج بعد الآن إلى تضمين التحميلات في النسخ الاحتياطي الخاص بك. وكمكافأة، ستتمكن من استعادة نسخة احتياطية من سطر الأوامر في حالة وقوع كارثة (فقط احتفظ بنسخة من app.yml في مكان ما).

3 إعجابات