تحميل ملف PDF بحجم 1 ميجابايت أحصل على «التحميل كبير جدًا، الحد الأقصى هو 4 ميجابايت»

أتلقى رسالة الخطأ « حجم الملف كبير جدًا، الحد الأقصى هو 4 ميجابايت » عند تحميل ملفات PDF بحجم أقل من 4 ميجابايت.
إليك اختباراتي:

  • ملف PDF بحجم 68 كيلوبايت يعمل بشكل صحيح كما هو متوقع.
  • ملف JPG بحجم 2.3 ميجابايت يعمل بشكل صحيح كما هو متوقع.
  • ملف PDF (2.3 ميجابايت) بحجم 2.3 ميجابايت يؤدي إلى ظهور الخطأ!
  • ملف JPG بحجم 3.6 ميجابايت يعمل بشكل صحيح كما هو متوقع.

من الغريب أن التحميل يعمل بنجاح على meta.discourse.org، ربما قمتم بتغيير بعض الإعدادات.

لم أقم بتعديل أي إعدادات تحتوي على max.

أنا أستخدم الإصدار 2.9.0.beta9 4af080d20b، على نسخة مستضافة ذاتيًا على https://discuss.afpy.org.

لا توجد مشكلة في هذا الملف على منتدياتي التي لم أغير فيها حد حجم الملف.

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

تجربته على موقع الاختبار الخاص بي (4b561277a9) دون إجراء أي تغييرات على إعدادات max أو حدود الملفات، ويتم تحميله بشكل جيد بالنسبة لي إذا أضفت pdf إلى authorized extensions، ويعطي رسالة الخطأ الصحيحة “عذرًا، الملف الذي تحاول تحميله غير مصرح به” عند إعادة تعيينه إلى الإعداد الافتراضي.

هل هناك شيء آخر يمكنني تجربته لمعرفة ما إذا كان بإمكاني تكرار ذلك؟

لا، لأن حجم الملف هذا أقل من حد حجم nginx الافتراضي. ومع ذلك، هذه معلومة جيدة.

الموقع الذي يستضيفه @Julien_Palard بنفسه لديه وكيل عكسي مخصص بين Discourse والمتصفح، لذا من المحتمل أن يكون هذا الخطأ ناتجًا عن وكيل عكسي تم تكوينه بشكل خاطئ.

5 إعجابات

هل لديك بروكسي عكسي أمام Discourse الخاص بك؟ كيف قمت بالتثبيت؟

أنا أستخدم nginx، وتكويني يبدو كالتالي:

لذا فإن تكوين nginx الخاص بي هو:

      server
      {
          listen [::]:80; listen 80;
          server_name {{ discourse_domain }};
          access_log /var/log/nginx/{{ discourse_domain }}-access.log;
          error_log /var/log/nginx/{{ discourse_domain }}-error.log;
          return 301 https://$host$request_uri;
      }
      server
      {
          listen [::]:443 ssl; listen 443 ssl;
          server_name {{ discourse_domain }};
          access_log /var/log/nginx/{{ discourse_domain }}-access.log;
          error_log /var/log/nginx/{{ discourse_domain }}-error.log;
          include snippets/letsencrypt-{{ discourse_domain }}.conf;
          location / {
              proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
              proxy_set_header Host $http_host;
              proxy_http_version 1.1;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto https;
              proxy_set_header X-Real-IP $remote_addr;
          }
      }

إنه nginx 1.18.0-6.1+deb11u2 من Debian bullseye.

أواجه خطأ 413 Request Entity Too Large من nginx، لذا من الواضح أنني بحاجة إلى التعمق أكثر لفهم سبب كون صورة “كبيرة” مقبولة ولكن ملف PDF “ليس كبيرًا جدًا” ليس كذلك…

ملف JPG بحجم 3.0 ميجابايت له Content-Length يبلغ 557215، أي 0.5 ميجابايت بشكل مفاجئ!
ملف PDF بحجم 2.3 ميجابايت له Content-Length يبلغ 2460137، أي 2.3 ميجابايت بشكل غير مفاجئ.

هل يقوم Discourse بتغيير حجم ملف jpg قبل تحميله؟

في ملفات JPEGs التي مررت بها، أرى أن عرض الصورة وارتفاعها مختلفان بعد تحميلهما إلى Discourse (جربت مع https://apod.nasa.gov/apod/image/2209/DSCF4968_PS_Lioce.jpg، وهي صورة بحجم 5703 × 3892، 3.6 ميجابايت، ولكن بمجرد تحميلها تصبح 1920 × 1310 بحجم 153 كيلوبايت).

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

الإعداد الافتراضي لـ nginx لـ client_max_body_size هو 1 ميجابايت، صور jpeg المعاد تحجيمها من جانب العميل كلها أقل من 1 ميجابايت، كل شيء أصبح واضحًا.

لقد أصلحت إعداد nginx الخاص بي: Set client_max_body_size to 4m to match Discourse configuration. · AFPy/infra@861af29 · GitHub

وهو يعمل الآن. لقد كنت على حق: لقد كان وكيل العكس الخاص بي.

شكرًا لكم جميعًا :heart: وآسف على الإزعاج!

4 إعجابات

لا أريد إضافة الوسم unsupported-install بشكل خاطئ، لكن أعتقد أن هذا الموضوع كان يجب أن يحصل عليه منذ البداية، أليس كذلك؟

حسنًا، هناك مواضيع لشرح كيفية تكوين وكيل عكسي، لذا فهذا شيء نساعد فيه عادةً.

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

صورة GIF للموسم الرابع الغاضب من The Office

نعم! ولدينا حتى منشور مدونة حول هذه الميزة الرائعة للغاية

7 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.