Js-core: 加号登录 S3 键导致 404

创建于 2019-12-16  ·  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

我怀疑,这是由于https://github.com/imgix/imgix-core-js/blob/master/src/imgix-core-js.js#L106 中的encodeURI 由于 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评论

fuzihaofzh picture fuzihaofzh  ·  3评论

ghost picture ghost  ·  3评论

ghost picture ghost  ·  3评论

fohlsom picture fohlsom  ·  3评论