غير قادر على تحميل ملف PDF

مرحبًا بالفريق،

أستخدم التخزين المحلي للخادم لتخزين الملفات. قمت برفع ملف PDF وتمت عملية الرفع بنجاح على الخادم، وهو موجود هناك أيضًا (تحققت من ذلك يدويًا عبر تسجيل الدخول باستخدام SSH).

Screenshot from 2019-12-24 14-44-42

هذه هي لقطة الشاشة للخطأ الذي ظهر عند محاولة تحميل ملف PDF.

هذا هو سجل حدث التحميل

[discourse_cloud] Started GET "/uploads/short-url/ev4yCeBAtz19YgsTSEkhLMkKrFK.pdf" for 122.168.93.128 at 2019-12-24 09:16:40 +0000
[discourse_cloud] Processing by UploadsController#show_short as PDF
[discourse_cloud]   Parameters: {"base62"=>"ev4yCeBAtz19YgsTSEkhLMkKrFK", "extension"=>"pdf"}
[discourse_cloud] Sent file /home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf (0.2ms)
[discourse_cloud] Completed 200 OK in 11ms (ActiveRecord: 0.0ms)
[discourse_cloud] Started GET "/home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf" for 122.168.93.128 at 2019-12-24 09:16:40 +0000
[discourse_cloud] ActionController::RoutingError (No route matches [GET] "/home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf")
/home/deploy/discourse_cloud/shared/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'
[discourse_cloud]   Rendering exceptions/not_found.html.erb within layouts/no_ember
[discourse_cloud]   Rendered exceptions/not_found.html.erb within layouts/no_ember (0.6ms)
[discourse_cloud]   Rendered layouts/_head.html.erb (1.0ms)
[discourse_cloud]   Rendered common/_discourse_stylesheet.html.erb (0.6ms)
[discourse_cloud]   Rendered application/_header.html.erb (0.1ms)
[discourse_cloud]   Rendering html template
[discourse_cloud]   Rendered html template (0.0ms)

ما الذي قد يكون سبب هذا الخطأ؟ :-/

إذا لم تقم برفع الملف باستخدام Discourse، فستحتاج إلى تغيير إعدادات Nginx داخل الحاوية. فليست مُهيأة لتقديم ملفات عشوائية من مجلدات عشوائية.

يبدو أن لقطة الشاشة قد تم رفعها باستخدام Discourse، لكن مسار URL يبدو وكأنه رابط قصير منسق بدلاً من الرابط الفعلي؟

هل يمكنك محاولة رفع ملف PDF هذا على try.discourse.org والتحقق مما إذا كان يعمل هناك؟ ربما تكون هناك مشكلة في هذا الملف تحديدًا؟

أعتقد أن رفع أنواع أخرى من الملفات يعمل؟

حسنًا، أنا غير قادر على رفع الملف دون أي مشاكل، لكنه الآن لا يسمح لي بتحميل الملف.

لقد رفعت الملف باستخدام صندوق رسائل ديسكورد وتم الرفع بنجاح، لكنني لا أستطيع تحميله.

نعم @Stephen، أستطيع رفع الملف بسلاسة باستخدام نظام Discourse الخاص بي، لكنه لا يسمح لي بتحميله. :frowning:

يرجى الاطلاع على لقطة الشاشة هذه؛ فهي تحتوي على زر تحميل. عندما حاولت النقر عليه، لم أتمكن من التحميل.

هذا هو الخطأ الذي ظهر عند محاولتي تحميل الصورة باستخدام زر التحميل. (من المرجح أن زر التحميل يستخدم دالة send_data في Ruby)

أريد فقط أن أفهم ما إذا كانت هذه مشكلة تتعلق بـ NGINX أو أي مشكلة أخرى تتعلق بأذونات المجلدات.

شكرًا لك

واجهت نفس المشكلة. يتم رفع ملف PDF، لكن لا يمكن بعد ذلك تنزيل الملف وينتقل المستخدم إلى صفحة “هذه الصفحة غير موجودة”!

لقد قمت بالاختبار وتمكنت من رفع وتنزيل ملف PDF بسهولة هنا على ميتا.

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

كان علي إعادة إنشاء ملف PDF باسم باللغة الإنجليزية (كان لدينا سابقًا أحرف فارسية في اسم الملف). بعد ذلك، يمكن تنزيل الملف المرفوع دون أي مشكلة.

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

مرحبًا الفريق،

عذرًا، تأخرت كثيرًا في الرد، لكنني قمت بإصلاح مشكلتي من خلال إجراء تعديلات داخل ملف nginx.conf. كان الإصلاح بسيطًا جدًا ومرتبطًا بملف nginx.conf (وكانت محاولتي السابقة لإصلاح الكود الأساسي :smiley:).

حذفت السطر التالي من ملف nginx.conf:

 proxy_set_header X-Sendfile-Type X-Accel-Redirect;

كان هذا التعديل كافيًا لجعل التحميل يعمل بشكل صحيح :slight_smile:

سأحاول أن أكون أكثر انتظامًا من الآن فصاعدًا :slight_smile:

شكرًا لكم،
أشيش ب.