سلوك غريب مع Digital Ocean Spaces/S3 والعديد من قواعد CORS المكررة لـ `example.com`

لقد واجهت هذا الخطأ في عملية تشغيل أولية حديثة. أستخدم Digital Ocean في SFO3.

"Tasks: TOP => s3:upload_assets => s3:ensure_cors_rules", "(See full trace by running
 task with --trace)", "I, [2021-12-16T21:19:05.748497 #1]  INFO -- : Installing CORS rules...", "Attempting to apply ASSETS S3 CORS ruleset in bucket pfaffmanager.", "Attempting to apply BACKUP_DIRECT_UPLOAD S3 CORS ruleset in bucket pfaffmanager."]

هل هناك شيء يمكن أن يفسر هذا وله حل؟

حسنًا. نظرت في الإعدادات ووجدت عددًا من قواعد CORS المتطابقة ظاهريًا. حذفت إحداها فحذفتها جميعًا. هذا خادم مرحلي قمت بترقيته عددًا لا يحصى من المرات (أو ربما مائة مرة، على أي حال؟)، لذا ربما يحدث هذا في النهاية لجميع مستخدمي Digital Ocean، ولكن بالنسبة لمعظم الناس سيستغرق الأمر 10 سنوات بدلاً من 8 أشهر.

بعد حذف قواعد CORS، نجحت عملية التشغيل الأولية التالية وكان هناك بعد ذلك قاعدتان لـ CORS في إعدادات مستودع المساحات. ولكن انظر - يبدو أن القواعد تم تعيينها لـ example.com. :man_shrugging:

مستودع آخر في AMS3 الذي أنا متأكد من أنني قمت بتشغيله عدة مرات لديه 3 قواعد مثل القاعدة المذكورة أعلاه. كلها لـ example.com. لقد تحققت من app.yml لمعرفة ما إذا كنت أفعل شيئًا غبيًا (وإذا كنت كذلك، فسيكون من المنطقي أن أكون قد فعلت ذلك بنفس الطريقة في العديد من الأماكن)، ولكن لا يوجد example.com في ملف yml.

عند إعادة البناء، أرى هذا في السجلات:



I, [2021-12-16T21:46:58.038151 #1]  INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
I, [2021-12-16T21:47:39.039145 #1]  INFO -- : Installing CORS rules...
Attempting to apply ASSETS S3 CORS ruleset in bucket pfaffmanager.
Attempting to apply BACKUP_DIRECT_UPLOAD S3 CORS ruleset in bucket pfaffmanager.
Assets rules status: rules_applied.
Backup rules status: rules_applied.
Direct upload rules status: rules_skipped_from_settings.

نظرت في الكود في أماكن مثل s3_backup_store.rb بحثًا عن example.com ولا يمكنني التوصل إلى تفسير.

3 إعجابات

يبدو أنه يجب علينا التوصية بـ DISCOURSE_S3_INSTALL_CORS_RULE: false لـ DO كما نفعل بالفعل لـ GCP و BackBlaze في استخدام تخزين الكائنات لتحميل الملفات (S3 \u0026amp; استنساخ) :thinking:

4 إعجابات

مرحباً،

آسف لإحياء هذا الموضوع ولكن أعتقد أنني واجهت مشكلة مماثلة قبل أيام قليلة.

الإعداد الخاص بي:

Digital Ocean Spaces مع s3:upload_assets و s3:expire_missing_assets.
شبكة توصيل المحتوى (CDN) - Bunny

يبدو أن كل إعادة بناء أو تحديث إداري عند تحميل الأصول يولد قاعدة CORS جديدة. إنه يكرر في الواقع القاعدة الأصلية. للأسف لم أنسخ رسالة خطأ وحدة التحكم ولكن كان هناك شيء قبل تحميل الأصول - تم الوصول إلى الحد الأقصى 100 قاعدة CORS لذلك ذهبت إلى Digital Ocean وتحققت من القواعد ونعم كان هناك 100. :smiley: لذلك فعلت الشيء نفسه مثل @pfaffman، قمت بإزالة واحدة وتمت إزالة جميع القواعد. بعد ذلك تم تحميل الأصول بنجاح عند إعادة البناء.

عندما قمت بإعداد هذا، اتبعت هذه التعليمات هنا: Configure an S3 compatible object storage provider for uploads والتي لا تحتوي على هذا السطر بعد.

هل سيؤدي إضافة هذا السطر إلى إيقاف إنشاء قواعد CORS المكررة؟ شكراً لك :slightly_smiling_face:

لقد قمت بتحديث الموضوع الآخر لذا آمل ألا يحدث ذلك للمستخدمين في المستقبل! شكراً على الإشارة إلى ذلك.

إعجابَين (2)