لا يبدو أن لدي إذن تعديل الويكي، لكنني استخدمت بنجاح مزودًا مختلفًا.
OVHcloud
اسم الخدمة: تخزين الكائنات
المناطق تتوافق مع مراكز البيانات التي يتم التعرف عليها برمز مكون من ثلاثة أحرف. إذا كنت لا تعرف مكان إنشاء الحاوية الخاصة بك، فتحقق من علامة تبويب تخزين الكائنات في بوابة العميل الخاصة بك.
في الأصل كنت أستخدمها في إصدار الاختبار الخاص بي، لكنني انتقلت إلى البيئة الإنتاجية مع النسخ الاحتياطية فقط، حيث أن جهاز الإنتاج لديه مساحة كبيرة على أي حال.
إنه متوافق جدًا مع S3، لكن هناك بعض الأمور المفقودة مثل قواعد دورة الحياة لحذف الملفات القديمة أو نقلها إلى التخزين البارد، والتي يتم العمل عليها حاليًا من قبل OVH. ومع ذلك، فإنه يعمل بشكل جيد لخدمة الملفات.
لنسخ الاحتياطية، استخدمت ببساطة خيار Discourse لحذف النسخ الاحتياطية القديمة تلقائيًا.
هذا رد مخيب جدًا وغير مفيد تمامًا. ما هو بالضبط المشكلة؟ الربط بوثيقة دعم تتغير يعني أنه لا أحد يمكنه أن يقول ما هو سوء الكسر هذا الذي ذكر في هذا الموضوع هنا.
تذكر أن “البيانات الوصفية” وأن شبكة CDN “لا تعرف عنها شيئًا”. أي بيانات وصفية؟ سيكون من المفيد أن نعرف ما الذي لا يعمل.
أردت فقط أن أضيف إلى هذا المنشور الخاص بي تعليمات حول كيفية استخدام iDrive E2.
يبدو أن هناك شيئًا ما قام iDrive بتفعيله مؤخرًا مما يتسبب في فشل مفاتيح الوصول المخصصة لدلو واحد فقط ما لم يتم تجاوز فحص مصادقة الدلو.
يمكنك تجاوز هذا عند استخدام rclone مع no_check_bucket = true في ملف rclone.conf، ولكن لست متأكدًا من وجود مثل هذا الإعداد البيئي لبناء Discourse.
ونتيجة لذلك، مع iDrive E2، يجب عليك حاليًا استخدام مفتاح لديه إمكانية الوصول للكتابة إلى جميع الدلاء الخاصة بك، بدلاً من دلو واحد فقط.
لماذا سيعرف شخص آخر المشكلة الدقيقة لموفر لا يستخدمه؟
على أي حال، يبدو أننا على وشك الانتهاء من Cloudflare R2. حسب:
عندما أدخلت كل المعلومات في واجهة المستخدم الرسومية، تم تحميل الملفات الجديدة إلى تخزين S3 بشكل صحيح، وتم إجراء النسخ الاحتياطي إلى S3 بشكل صحيح. لم يتم نقل التحميلات الحالية بشكل واضح.
لذلك قمت بالذهاب إلى app.yml وأدخلت هذه المعلومات:
بعد إعادة البناء، تعطل موقعي بسبب الكثير من الملفات المفقودة، لذلك حاولت نقلها إلى الخادم وحصلت على هذا الخطأ لكل ملف:
root@talk-app:/var/www/discourse# rake uploads:migrate_to_s3
يرجى ملاحظة أن الترحيل إلى S3 غير قابل للعكس حاليًا!
[CTRL+c] للإلغاء، [ENTER] للمتابعة
ترحيل التحميلات إلى S3 لـ 'default'...
تحميل الملفات إلى S3...
- سرد الملفات المحلية
= 31 ملفًا
- سرد ملفات S3
. = 4 ملفات
- مزامنة الملفات إلى S3
#<Thread:0x00007ff89dcbcb20 /var/www/discourse/lib/file_store/to_s3_migration.rb:212 run> انتهى بـ استثناء (report_on_exception is true):
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call': You can only specify one non-default checksum at a time. (Aws::S3::Errors::InvalidRequest)
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/dualstack.rb:21:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/accelerate.rb:43:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/aws-sdk-core/plugins/checksum_algorithm.rb:169:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:16:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/aws-sdk-core/plugins/invocation_id.rb:16:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/seahorse/client/plugins/request_callback.rb:89:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/seahorse/client/plugins/response_target.rb:24:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in `block in call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/aws-sdk-core/telemetry/no_op.rb:29:in `in_span'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/aws-sdk-core/plugins/telemetry.rb:53:in `span_wrapper'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in `call'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.226.0/lib/seahorse/client/request.rb:72:in `send_request'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/client.rb:17315:in `put_object'
from /var/www/discourse/lib/file_store/to_s3_migration.rb:215:in `block (2 levels) in migrate_to_s3'
سأكون ممتنًا جدًا لبعض النصائح لإنهاء هذا الأمر بأي شكل من الأشكال.
الملفات المفقودة هي على الأرجح أصول، لذا تحتاج إلى مهمة “rake” التي تدفعها إلى s3 (s3:upload_assets – إنها قريبة من الأعلى)
ولكن أخطائك ناتجة على الأرجح عن مكتبة aws s3 الجديدة التي تعطل مجموعة من الخدمات. لذا ستحتاج إلى اختراع طريقة لخفض إصدار gem الخاص بـ aws أو استخدام خدمة أخرى.
أعتقد أنه قد يكون هناك موضوع حول كيفية القيام بذلك. لقد قمت بذلك على موقع أو موقعين، لكنني لست متأكدًا من كيفية توثيقه أو أين تم توثيقه.
هل أحتاج إلى تشغيل ذلك على الرغم من أن هذا جزء من التغييرات التي أجريتها في ملف app.yml؟ اعتقدت أن ذلك كان موجودًا لدفع الملفات تلقائيًا أثناء إعادة البناء.
لا ينبغي عليك ذلك، ولكن هذه هي الأشياء التي من شأنها أن تجعل موقعك “معطلاً” (أم أن “معطلاً” يعني “الصور مفقودة” بالنسبة لك؟) تحميل الصور باستخدام migrate_to_s3 يؤثر فقط على الصور.
لا أستطيع أن أشرح تمامًا كيف تم تحميل جميع الأصول بالفعل (ما الذي كان معطلاً في الموقع؟ كيف تم تحميلها إذا كان إعداد S3 الخاص بك معطلاً؟)
نظرًا لأن كل شيء يبدو موجودًا في مخزني، فمن المحتمل أن يكون هناك متغير بيئي يحتاج إلى تحديث لكي يعمل كل شيء بشكل صحيح.
إذا تمكنا من حل هذه المشكلة، فيمكننا القول إن R2 جاهز للاستخدام.
هل هذه شبكة توصيل المحتوى (CDN) الخاصة بك أم الدلو الخاص بك؟ هل هذا الملف موجود في الدلو الخاص بك؟ ربما يكون في الدلو الخاص بك ولكن شبكة توصيل المحتوى (CDN) الخاصة بك معطلة؟
إليك كيف قمت بتكوين R2 مرة واحدة وأعتقد أنها نجحت.
أين يفترض أن يكون “extra-locales”؟ لا أراه تحت ‘public’ أو ‘assets’ حتى داخل الحاوية. أين يجب أن أبحث؟
آسف على الأسئلة الغبية، لكن هذه مغامرة جديدة تمامًا بالنسبة لي.
هل ما هو الـ CDN الخاص بي أم الـ bucket الخاص بي؟
مع الشرطات البادئة، وجميع علامات الاقتباس المفردة والمزدوجة؟ ليس لدي أي من هذه في ملف app.yml الخاص بي. هل يجب أن أضيف هذه وأعيد البناء للاختبار؟
هذا بالضبط كيف يبدو ملفي، مع مسافة بادئة بمقدار مسافتين لكل سطر:
## This set of lines allows R2 S3 hosted files to be uploaded and downloaded..
DISCOURSE_CDN_URL: https://eufiles.technospider.com
DISCOURSE_USE_S3: true
DISCOURSE_S3_ENDPOINT: https://randomnumber.r2.cloudflarestorage.com
DISCOURSE_S3_CDN_URL: https://eufiles.technospider.com
DISCOURSE_S3_BACKUP_BUCKET: exotics-unlimited-backups
DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_BUCKET: exotics-unlimited
DISCOURSE_S3_REGION: auto
DISCOURSE_S3_ACCESS_KEY_ID: randomnumbers
DISCOURSE_S3_SECRET_ACCESS_KEY: randomnumbers
DISCOURSE_S3_INSTALL_CORS_RULE: false
لقد نجح عندما أدخلت الإعدادات عبر واجهة الويب، ثم عندما وضعت كل شيء في ملف app.yml حصلت على ما رأيته عندما ذهبت إلى الموقع.
This object does not exist or is not publicly accessible at this URL. Check the URL of the object that you're looking for or contact the owner to enable Public access.
يمكنك معرفة ما إذا كان https://eufiles.technospider.com/extra-locales/ca382c69f8e6b85162b2ba58f2ce100bfe741966/en/mf.js?__ws=eu.technospider.com يعمل إذا قمت بتغيير اسم المضيف إلى نقطة نهاية Cloudflare الخاصة بك.
هل يمكنك العثور على هذا الملف في الحاوية الخاصة بك؟ هل يمكنك الوصول إليه؟
لا أعرف، ولكن هذا هو عنوان URL الذي نسخته من أدوات المطور في متصفحي.
لذا، ابحث أولاً عن هذا الملف في الحاوية الخاصة بك وانظر ما إذا كان موجودًا على الإطلاق، وبعد ذلك يمكنك البدء في معرفة سبب عدم تمكن شبكة توصيل المحتوى من العثور عليه.
لا. أستخدم أداة مختلفة للتكوين، ولكن هذه هي إعدادات البيئة التي أنا متأكد منها أنها عملت معي في وقت ما.
لا يبدو أن ملف XML هذا يحتوي على أي معلومات تنسيق مرتبطة به. يتم عرض شجرة المستند أدناه.
<Error>
<Code>InvalidArgument</Code>
<Message>Authorization</Message>
</Error>
الدلو هو “الدليل الرئيسي” الذي أنشأته وحيث توجد جميع الملفات. شبكة توصيل المحتوى (CDN) هي مجموعة من الخوادم في جميع أنحاء العالم والتي تحصل على نسخة من هذا الدلو. يتم التعرف عليه باستخدام عنوان URL الذي قدمته عند إنشاء هذا الاتصال، مثل cdn.example.com.
يبدو أنه مع R2، يتم إنشاء شبكة توصيل المحتوى (CDN) تلقائيًا إذا قمت بمنح الحاوية نطاقًا مخصصًا. كان ذلك مربكًا بعض الشيء حيث لم يكن عليّ فعل أي شيء فعليًا مع شبكة توصيل المحتوى (CDN).
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>InvalidArgument</Code>
<Message>Authorization</Message>
</Error>