روابط التنزيل للمرفقات بصيغة .txt (و .yaml) تُظهر النص الخام بدلاً من التنزيل

في مثيل Discourse الخاص بنا، إذا قام مستخدم برفع ملف بصيغة .txt أو .yaml كمرفق، يتم عرض اسم الملف كرابط تنزيل:

links

ولكن عند النقر على هذه الروابط، لا يتم تنزيل الملف، بل يفتح تبويب متصفح جديد يعرض النص الخام، محملاً من عنوان URL مثل:

https://discourse-attachments.s3.dualstack.us-west-2.amazonaws.com/original/2X/4/xxxxxxxx.txt

كيف يمكن جعل رابط التنزيل يقوم فعليًا بتنزيل الملف؟

تم اقتراح تمكين خيار “تحميلات آمنة” كحل، ولكن بعد قراءة المزيد عنه، أنا متردد قليلاً في تفعيله.

شكرًا لكم،

– تشارلز

نعم، هذا على الأرجح مشكلة في تكوين منتداك، وربما تتعلق بشبكة توصيل المحتوى (CDN) أو خدمة S3.

قد أكون مخطئًا، لكنني أعتقد أن الأمر يتعلق بكيفية تقديم الملفات المرفوعة في منتداك، سواء عبر التخزين المحلي أو عبر S3 /object/ شبكة توصيل المحتوى (CDN). هل يمكن أن يكون ذلك متعلقًا برأس استجابة HTTP؟

أعتقد أنه إذا كان رأس content-disposition: attachment موجودًا، فإن المتصفحات عادةً ما تقوم بتنزيل الملف، أما إذا كان مفقودًا، فإن المتصفحات غالبًا ما تفتح ملفات .txt أو .yml.

test.yml (5 بايت)

^ يجب أن يتم تنزيل ملف .yml هذا كما هو متوقع.

تعديل: أعتقد أن هذا الموضوع قد يكون ذا صلة: