طلب ميزة: تحميلات آمنة لخوادم S3 بدون ACL لكل كائن

المشكلة

على الخلفيات المتوافقة مع S3 التي لا تدعم صلاحيات الوصول (ACLs) لكل كائن، لا يمكن لخاصية secure_uploads أن تتعايش مع المحتوى المخدم للعامة.

يبدو أن الرموز الشخصية (Avatars) وأصول السمة/الموقع تُقدم عبر روابط S3 مباشرة وغير مصادق عليها، مما يتطلب صلاحية قراءة عامة للكائن. لكن الدلو (Bucket) نفسه يحتوي على تحميلات منشورات آمنة يجب أن تظل خاصة في الإعداد المطلوب لدي — وكلا النوعين (الملفات العامة والملفات الخاصة) يشاركان نفس بادئات المسارات (original/...، optimized/...). وبدون صلاحيات وصول لكل كائن، لا يوجد طريقة لجعل الملفات عامة والبقية خاصة.

حالتي الحالية: الرموز الشخصية والأصول لا تعمل بشكل صحيح (الدلو خاص → خطأ 403 لتلك الملفات)، بينما تعمل تحميلات المنشورات الآمنة بشكل جيد عبر الوكيل /secure-uploads/.

التعارض الجوهري

تتطلب التحميلات الآمنة مسار قراءة مصادق عليه؛ بينما تتطلب الرموز الشخصية والأصول مساراً غير مصادق عليه. وكلاهما يقع خلف حدود الدلو على مستوى واحد، والتي لا يمكنها التمييز بينهما دون صلاحيات وصول لكل كائن.

الحلول المطلوبة

  1. تقديم الرموز الشخصية والأصول عبر روابط موقعة مسبقاً (Presigned URLs) عندما يكون الدلو خاصاً ومعطلة صلاحيات الوصول — نفس الآلية المستخدمة في التحميلات الآمنة. من منظوري، يمكن أن يعمل هذا أيضاً للمستخدمين المسجلين فقط في السيناريوهات التي تتضمن مثيلات Discourse غير عامة.
  2. دعم دلات (Buckets) أو بادئات منفصلة للأصول العامة مقابل التحميلات الآمنة، بحيث تتوافق حدود الوصول مع الحدود بين العام والخاص، مما يتيح إنشاء صلاحيات وصول مناسبة.

هل أي من النهجين المذكورين ممكن، أو هل فاتني مسار مدعوم بالفعل؟