S3 CDN URL ignored when uploading into posts

All of our traffic goes through CloudFront, and static content is fetched by CloudFront from one of several S3 buckets.

With uploads being sent to S3, Discourse embeds the content with a generic bucket URL despite our having s3 cdn url set. Once submitted, posts appear to use the correct URL set in s3 cdn url, although this may also be because we have DISCOURSE_CDN_URL set as well (both are set to the same URL).

The post preview window references the standard S3 URL seen in the unbaked post, though. This is a problem because we use a private ACL on files uploaded to our Discourse uploads bucket, as content on this bucket should never be accessed outside of CloudFront. The result is a broken image in the preview window.

إعجابَين (2)

محزّز أن هذا تم الإبلاغ عنه منذ سنوات عديدة دون إصلاح.

@DanielMarquard هل تمكنت من إيجاد حل بديل، أم أنك اضطرت إلى جعل ACL الخاص بـ S3 عامًا؟

لست متأكدًا من أنه من العدل القول إن هذا معطّل، بقدر ما هو أن التنفيذ الأكثر تعقيدًا غير مدعوم بالكامل.

تعمل عمليات التحميل إلى S3 كما هو موثق وتتصرف بشكل صحيح.

@Stephen بالتأكيد هذا خاضع للتفسير…

يبدو لي أنه “معطّل” لأنه يستخدم عنوان URL الخاص بشبكة تسليم المحتوى (CDN) في حالة واحدة ولا يستخدمه في الحالة الأخرى، كما أنه يفرض إعداد S3 تنصح شركة AWS بعدم استخدامه (قائمة التحكم في الوصول العامة لحوض S3).

أنا جديد على مشروع Discourse بشكل عام، لكن يمكنني بالتأكيد العمل على طلب سحب (PR).

قد يكون من الجيد إصلاح هذا الآن، حيث أصبحت شركة أمازون ويب سيرفيسز (AWS) أكثر جدية في إخبار المستخدمين بوجود قوائم التحكم في الوصول (ACL) العامة للقراءة.

4 إعجابات

بما أن تنفيذنا الحالي لم يعد يحتوي على وسم IMG، على سبيل المثال:

![image|690x298,50%](upload://eGAOR4Xy4aRM2lwPIuTokBf60jS.png)

فإن تطبيق شبكة توصيل محتوى (CDN) على ما سبق سيكون أمرًا سهلاً نسبيًا، كما أنه يوفر حركة المرور.

@vinothkannans، هل يمكنك إصلاح هذا بحيث يستخدم المعاينة عنوان URL الخاص بـ CDN؟

بدلاً من أن تظهر المعاينة ما يلي:

<img src="//assets-meta-cdck-prod-meta.s3.dualstack.us-west-1.amazonaws.com/original/3X/6/6/66ef078b3ef9da9aa1b3356cb21fe22a0d25eaf0.png" alt="image" class="resizable" width="345" height="149">

يجب أن نعرض عنوان URL الخاص بـ CDN وهو التالي:

<img src="https://d11a6trkgmumsb.cloudfront.net/original/3X/6/6/66ef078b3ef9da9aa1b3356cb21fe22a0d25eaf0.png" alt="image" class="resizable" width="345" height="149">
6 إعجابات

تم الإصلاح الآن وفقًا لـ commit أدناه

6 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 32 ساعة. لم يعد مسموحًا بإضافة ردود جديدة.

متابعة للنقاش من تم تجاهل عنوان URL الخاص بـ S3 CDN عند التحميل في المنشورات:

يبدو أن هذه المشكلة قد عادت، ويمكنني إعادة إنتاجها هنا على الميتا.

3 إعجابات

هل يمكننا التحقق من هذا @vinothkannans أو @falco؟

3 إعجابات

وفقًا للتغيير الأخير، نحصل الآن على عنوان URL للملف المرفوع من طلب الرفع الأولي نفسه. سابقًا، كنا نتلقاه من نقطة النهاية /uploads/lookup-urls.json. يجب أن يصحح هذا الالتزام المشكلة.

5 إعجابات

يبدو أن هذا الإصلاح لا يغطي الرموز التعبيرية المخصصة في المعاينة، على سبيل المثال :allthethings:.

4 إعجابات

هذا الأمر يفتقر أيضًا إلى المرفقات مثل تصدير البيانات أو أي مرفق ملف آخر. لا تزال هذه المرفقات تأتي من S3.

يمكنني إصلاح ذلك!

3 إعجابات