خطأ في تحميل الصورة: الدلو لا يسمح بـ ACLs

لا يمكن للمستخدمين وحتى المسؤولين تحميل الصور بعد الآن.
يقول سجل الأخطاء: خطأ في الرابط الساخن
حد 4 ميجابايت، لكنني حاولت تحميل ملف بحجم 800 كيلوبايت كاختبار بعد شكوى المستخدم.

لقد أجرينا تحديثًا حديثًا قبل بضعة أيام (2.9.0.beta4)
لقد قمنا بإعداد S3 buckets مؤخرًا.

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

الرسالة (تم الإبلاغ عن نسختين)

افتراضي: فشل في سحب الصورة المرتبطة بالرابط الساخن (https://jackrail.space/images/discourse-logo-sketch-small.png) المنشور: 586
الدلو لا يسمح بـ ACLs
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/dualstack.rb:36:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/accelerate.rb:50:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/plugins/request_callback.rb:71:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/plugins/response_target.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/request.rb:72:in `send_request'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/client.rb:11274:in `put_object'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/object.rb:1329:in `put'
/var/www/discourse/lib/s3_helper.rb:74:in `upload'
/var/www/discourse/lib/file_store/s3_store.rb:116:in `store_file'
/var/www/discourse/lib/file_store/s3_store.rb:30:in `store_upload'
/var/www/discourse/lib/upload_creator.rb:212:in `block (2 levels) in cr...

تتبع الأخطاء

/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:243:in `public_send'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:243:in `log'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:58:in `rescue in block in execute'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:35:in `block in execute'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.13.4-x86_64-linux/lib/nokogiri/xml/node_set.rb:234:in `block in each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.13.4-x86_64-linux/lib/nokogiri/xml/node_set.rb:233:in `upto'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.13.4-x86_64-linux/lib/nokogiri/xml/node_set.rb:233:in `each'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:34:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:80:in `with_connection'

أعتقد أنني قمت بإصلاحه ولكني لست متأكدًا مما تفعله هذه الميزة أو ما إذا كانت تعطل النسخ الاحتياطي لـ S3.\n**“تمكين تحميلات S3”**\nلقد قمت بتمكين هذا معتقدًا أنه جزء من إجراء النسخ الاحتياطي.\nلقد قمت بتعطيل هذا ولم أعد أتلقى هذا الخطأ عند تحميل صورة اختبار.

هذا الإعداد يضع ملفات التحميل الخاصة بك في حاوية S3 وهو منفصل عن ملفات التحميل. يبدو أن هذه الحاوية لم يتم ترميزها بشكل صحيح لملفات التحميل (راجع استخدام تخزين الكائنات لملفات التحميل (S3 والنسخ المتماثلة) للمعلومات).\n\nلا يزال يتعين عليك التحقق من أن النسخ الاحتياطية الخاصة بك تعمل.

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

أعتقد أن هذه كانت المشكلة وتم تأكيد حلها من قبل المستخدم الذي اشتكى.

لست متأكدًا مما يفعله تحميل الصور هذا، لكنني أفترض أنه ميزة إضافية قد تحتاجها الخوادم المعقدة. أعتقد أن مستخدمينا البالغ عددهم 40 مستخدمًا لا يحتاجون إلى نقاش بهذه الميزة المعقدة. نحن مهتمون أكثر بالإعجابات باستخدام الرموز التعبيرية.

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

لم تنجح هذه الإجراءات.. استخدمت “*” بدلاً من ذلك.

"Action": [
           "s3:ListAllMyBuckets",
           "s3:HeadBucket"
       ],

الموضوع الذي استخدمته لتكوين واتباع التعليمات هو هنا

إنه أيضًا يحتوي على تمكين تحميلات S3 محددة كـ “تم التحقق منها”.. يبدو أن جعل الأمور معقدة جدًا للمستخدم العادي.
من ناحية أخرى، آمل أن تكون نسخي الاحتياطية تعمل بشكل جيد بدونها.

لماذا استخدمت * بدلاً منها؟

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