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

هل غيرت Scaleway أي شيء؟ لقد كان يعمل لدي حتى قبل 48 ساعة ولكنه لم يعد يعمل.

إعجاب واحد (1)

هل فاتورتك مدفوعة؟ ما الخطب؟ هل تعمل أي صور؟ هل اختفت كلها أم أنك لا تستطيع إضافة صور جديدة؟

إعجاب واحد (1)

هل يمكنك إضافة المزيد من الدعم؟ على سبيل المثال، Tencent COS من الصين أكثر ملاءمة للمستخدمين الصينيين، و Tencent Cloud’s COS لديها عقد CDN في جميع أنحاء العالم، وهي سريعة جدًا في الوصول إليها

هل جربته؟ هل يعمل؟

لقد استخدمته في بيئة الاختبار، ولكن يمكنني فقط النسخ الاحتياطي إلى Tencent COS، وآمل أن يضيف المسؤولون عن discourse دعم Tencent COS لتسهيل المطورين من الصين.

إعجاب واحد (1)

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

أعتقد أنه من غير المرجح أن يقوموا بإجراء تغييرات في النواة لدعمه.

إعجاب واحد (1)

Backblaze:

  • لقد قمت بإعداد دلو B2 في حسابي
  • أضفت التفاصيل إلى قسم env في app.yml
  • قمت بتشغيل ./launcher rebuild app

… ولكنني لا أرى أي تأكيد في لوحة تحكم مثيل Discourse الخاص بي بأن هذه الإعدادات قد تم تطبيقها. أين يجب أن أبحث؟

إعجاب واحد (1)

مرحباً،

لقد تمكنت بنجاح من اختبار واستخدام Cloudflare R2 لكل من التحميلات والنسخ الاحتياطي. منشور مفصل هنا Cloudflare R2: Navigating Setup and Handling Configuration Errors - #40 by kamaljain

نطلب منك التكرم بالاختبار من جانبك ومراجعة “يعمل مع Discourse” إلى نعم لـ Cloudflare R2. في الواقع، إنه أسهل من S3 وأكثر اقتصادية، مجاني إذا كان التخزين أقل من 10 جيجابايت.

إعجابَين (2)

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

إعجاب واحد (1)

يمكنني رؤية النسخ الاحتياطية مدرجة. لم أجرب الاستعادة بعد.

إعجاب واحد (1)

مرحباً يا صديقي، هل يمكنني الدردشة معك؟ لدي بعض المشاكل عند الإعداد مع minio.
شكراً لك.

إعدادات iDrive

أردت فقط الإبلاغ عن أن استخدام إصدار E2 من iDrive لتخزين s3 يعمل بشكل مثالي مع هذه الإعدادات:

إعدادات البيئة في ملف yaml

تأكد من أن الدلو الخاص بك لديه على الأقل أذونات عام و قراءة في إعدادات iDrive.

هذه هي الإعدادات التي أستخدمها لدلو واحد يشارك التحميلات و النسخ الاحتياطي.

DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: your-region
DISCOURSE_S3_ENDPOINT: https://your-idrive-endpoint.dev
DISCOURSE_S3_ACCESS_KEY_ID: your-access-key
DISCOURSE_S3_SECRET_ACCESS_KEY: your-secret-key
DISCOURSE_S3_CDN_URL: https://your-custom-cdn-url.com/uploads
DISCOURSE_S3_BUCKET: your-bucket-name/uploads
DISCOURSE_S3_BACKUP_BUCKET: your-bucket-name/backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false

بشكل افتراضي، لدى iDrive مشاركة كل شيء في هذه المنطقة مع كل مصدر … لذا يجب أن يعمل بشكل مباشر بغض النظر عن المصادر. قم بتقييده بنطاقاتك الخاصة إذا أردت.

أستخدم شهادة مصدر Cloudflare لإنشاء CNAME يشير إلى نقطة نهاية iDrive.


مزامنة المرفقات الموجودة

إعادة البناء

أعد بناء التطبيق بعد تغيير إعدادات البيئة هذه.


تحميل وإعادة الخبز

ثم أدخل الحاوية وقم بتشغيل

rake uploads:migrate_to_s3

شاهد التحميل، ثم قم بتشغيل

rake posts:rebake_uncooked_posts

اخرج من الحاوية


إضافة إلى قسم hooks في ملف yaml

في قسم hooks

after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

يضمن هذا تحميل ملفات js/css إلى iDrive بعد المرفقات الخاصة بك، وإلا ستحصل على الكثير من أخطاء وحدة التحكم في المتصفح لأنها كلها مفقودة.


إعادة البناء

أعد البناء مرة أخرى بعد إدخال أمر الأصول.


يجب أن يكون كل شيء على ما يرام!

إعجابَين (2)

ربما يجب إضافة خدمة تخزين الكائنات Hetzner إلى الجدول؟

إعجابَين (2)

تمكنت من استخدام Contabo لتحميل الملفات. الملفات القديمة (المنقولة) والتحميلات الجديدة عملت بشكل جيد. في حالتي، كان عنوان URL للمخزن هو https://eu2.contabostorage.com/mybucket.
كانت الحيلة هي تعيين EU2 كاسم للمخزن و https://contabostorage.com/mybucket كنقطة نهاية.
المشكلة الوحيدة هي أنه عند تحميل الموقع، فإنه يطلب أيضًا ملفات أخرى مثل ملفات JavaScript الخاصة بالإضافات من المخزن ولا يتم تحميلها لأن الملفات غير متاحة. حسنًا، لقد فهمت أن هذا يرجع إلى أنني قمت بتعيين عنوان URL لشبكة توصيل المحتوى (CDN) بنفس اسم المخزن. هذا ليس واضحًا جدًا بالنسبة لي بعد، هل يمكن لأحد أن يخبرني كيف أقوم بإعداده؟ بناءً على ما فهمته، يجب علي إنشاء عنوان CNAME يشير إلى النطاق الرئيسي (خادم Discourse) وتوجيهه عبر Cloudflare، هل هذا صحيح؟

إعجاب واحد (1)

لقد فاتك هذا الجزء:

إعجاب واحد (1)

أنا متأكد من أنني فعلت ذلك، لكن ربما ارتكبت خطأ. في النهاية، قمت باستعادة نسخة احتياطية، لذا أنا أعتمد قليلاً على الذاكرة… ولكن بعد ذلك، أتساءل، لماذا يُنصح بعدم تعيين شبكة توصيل المحتوى (CDN) كـ Bucket؟ ما هي المشاكل التي يمكن أن يسببها؟ سأحاول مرة أخرى غدًا.
شكرًا

إعجاب واحد (1)

لا أعتقد أن المشكلة التي تصفها ستكون بسبب تعيين عنوان URL لشبكة توصيل المحتوى (CDN) كعنوان URL للمخزن (أي إذا كانت التحميلات تعمل، ولكن الأصول لا تعمل).

إعجابَين (2)

سأقوم بتحديثك غدًا، شكرًا لك

إعجاب واحد (1)

ونجحت :partying_face:
خطوة بخطوة لما فعلته على أمل مساعدة الآخرين:

عدلت ملف app.yml وأضفت

  after_assets_precompile:
    - exec:        cd: $home
        cmd:          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

بعد الـ hooks: (بعد استنساخ الإضافات git clone plugins… مباشرة)
و

  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: EU
  DISCOURSE_S3_ENDPOINT: https://contabostorage.com/bucketname
  DISCOURSE_S3_ACCESS_KEY_ID: accesskey
  DISCOURSE_S3_SECRET_ACCESS_KEY: secretaccesskey
  DISCOURSE_S3_CDN_URL: https://eu2.contabostorage.com/randomlettersthatcontaboaddstothelinks:bucketname
  DISCOURSE_S3_BUCKET: eu2
  DISCOURSE_BACKUP_LOCATION: s3
  DISCOURSE_S3_INSTALL_CORS_RULE: false

بعد إعدادات البريد الإلكتروني
ثم قمت بتعيين نفس القيم في قائمة discourse وتمكين تحميلات S3.
أعدت بناء التطبيق باستخدام

cd /var/discourse
sudo ./launcher rebuild app

ثم

./launcher enter app
rake uploads:migrate_to_s3

يستغرق هذا بعض الوقت، في حالتي بضع ساعات (80 ألف ملف، 100 جيجابايت)

عند الانتهاء

rake posts:rebake_uncooked_posts
4 إعجابات

تحديث: لم يتمكن بعض المستخدمين من تحميل الموقع (الأصول والملفات). وجدنا أن النطاق contabostorage.com كان موجودًا في بعض القوائم السوداء كموقع تصيد احتيالي. كان الحل بسيطًا:

قم بإعداد نطاق فرعي files.mydomain.com كما هو موضح هنا Can I Setup a Custom Domain for My Object Storage? : Contabo

تم تحديث DISCOURSE_S3_CDN_URL: https://files.mydomain.com في app.yml

ثم

cd /var/discourse
sudo ./launcher rebuild app

ولإكمال المهمة

./launcher enter app
rake posts:rebake

الآن يتم تحميل جميع الأصول والتحميلات من https://files.mydomain.com/pathtofile/file.ext

تم

إعجابَين (2)