Js-core: يؤدي مفتاح Plus-Sign in S3 إلى الخطأ 404

تم إنشاؤها على ١٦ ديسمبر ٢٠١٩  ·  3تعليقات  ·  مصدر: imgix/js-core

محاولة جلب صورة لكائن في S3 مع '+' في أسبابه الرئيسية 404.

مثال:

GET https://<cname>.imgix.net/E+P-003_D.jpeg // -> 404
GET https://<cname>.imgix.net/E%2BP-003_D.jpeg // -> 200

أظن أنه بسبب encodeURI في https://github.com/imgix/imgix-core-js/blob/master/src/imgix-core-js.js#L106. نظرًا لأن مفتاح S3 هو مسار ، فإن الوحدة النمطية تستخدم encodeURI ، والتي تقبل رموز '+' ولا تقوم بتشفيرها. ومع ذلك ، فإن S3 يفسرها على أنها مسافات.

التعليق الأكثر فائدة

مرحبًا sherwinski ،

شكرا لك! هذا أيضًا حل سريع ، لقد توصلت إليه بالأمس :)

اسمحوا لي أن أعرف ، إذا كان بإمكاني المساعدة في أي شيء في إيجاد حل أكثر أناقة.

ال 3 كومينتر

مرحبًا rschweizer ،
شكرا من أجل انجاح هذا. لسوء الحظ ، لا يوجد حل مباشر لهذا الأمر لأن تشفير + يعرضك لخطر كسر الإعدادات التي لا تستخدم مصادر S3. في الوقت الحالي ، سيكون الحل الأسرع هو تشفير + بشكل منفصل بعد إنشاء عنوان URL:

client.buildURL(path, params).replace(/\+/g, '%2B')

أعلم أنها ليست إجابة مرضية ، لكن أعلم أننا نبحث حاليًا عن حل أفضل لهذا الأمر. لا تتردد في الرد إذا كان لديك أي أسئلة أخرى. شكرا

مرحبًا sherwinski ،

شكرا لك! هذا أيضًا حل سريع ، لقد توصلت إليه بالأمس :)

اسمحوا لي أن أعرف ، إذا كان بإمكاني المساعدة في أي شيء في إيجاد حل أكثر أناقة.

rschweizer مرحبًا: wave: شكرًا على فتح هذه المشكلة ولفت انتباهنا إليها. أنا سعيد لأنك و sherwinski قد وجدتم حلاً مشابهًا :)

من الآن فصاعدًا ، نحن بالفعل نفكر مليًا في كيفية / متى يجب / لا ينبغي أن يحدث التشفير بالإضافة إلى التعامل مع حالات الحافة. لقد قمت بإنشاء مستند داخلي لتتبع هذه المشكلة ونحن نعمل بالفعل على more elegant solution .

سأغلق هذا الآن ، ولكن _ من فضلك_ لا تتردد في التعليق / سحب / فتح مشكلة مرة أخرى إذا كان لديك أي أسئلة أو تعليقات أو مخاوف.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

hennessyevan picture hennessyevan  ·  6تعليقات

esprehn picture esprehn  ·  10تعليقات

marioestrada picture marioestrada  ·  28تعليقات

chromaticbum picture chromaticbum  ·  29تعليقات

Gozala picture Gozala  ·  160تعليقات