محاولة جلب صورة لكائن في 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 يفسرها على أنها مسافات.
مرحبًا rschweizer ،
شكرا من أجل انجاح هذا. لسوء الحظ ، لا يوجد حل مباشر لهذا الأمر لأن تشفير +
يعرضك لخطر كسر الإعدادات التي لا تستخدم مصادر S3. في الوقت الحالي ، سيكون الحل الأسرع هو تشفير +
بشكل منفصل بعد إنشاء عنوان URL:
client.buildURL(path, params).replace(/\+/g, '%2B')
أعلم أنها ليست إجابة مرضية ، لكن أعلم أننا نبحث حاليًا عن حل أفضل لهذا الأمر. لا تتردد في الرد إذا كان لديك أي أسئلة أخرى. شكرا
مرحبًا sherwinski ،
شكرا لك! هذا أيضًا حل سريع ، لقد توصلت إليه بالأمس :)
اسمحوا لي أن أعرف ، إذا كان بإمكاني المساعدة في أي شيء في إيجاد حل أكثر أناقة.
rschweizer مرحبًا: wave: شكرًا على فتح هذه المشكلة ولفت انتباهنا إليها. أنا سعيد لأنك و sherwinski قد وجدتم حلاً مشابهًا :)
من الآن فصاعدًا ، نحن بالفعل نفكر مليًا في كيفية / متى يجب / لا ينبغي أن يحدث التشفير بالإضافة إلى التعامل مع حالات الحافة. لقد قمت بإنشاء مستند داخلي لتتبع هذه المشكلة ونحن نعمل بالفعل على more elegant solution
.
سأغلق هذا الآن ، ولكن _ من فضلك_ لا تتردد في التعليق / سحب / فتح مشكلة مرة أخرى إذا كان لديك أي أسئلة أو تعليقات أو مخاوف.
التعليق الأكثر فائدة
مرحبًا sherwinski ،
شكرا لك! هذا أيضًا حل سريع ، لقد توصلت إليه بالأمس :)
اسمحوا لي أن أعرف ، إذا كان بإمكاني المساعدة في أي شيء في إيجاد حل أكثر أناقة.