Intentar obtener una imagen para un objeto en S3 con '+'
en su clave provoca 404.
Ejemplo:
GET https://<cname>.imgix.net/E+P-003_D.jpeg // -> 404
GET https://<cname>.imgix.net/E%2BP-003_D.jpeg // -> 200
Sospecho que se debe a encodeURI
en https://github.com/imgix/imgix-core-js/blob/master/src/imgix-core-js.js#L106. Como la clave S3 es una ruta, el módulo usa encodeURI
, que acepta los símbolos '+'
y no los codifica. S3, sin embargo, los interpreta como espacios.
Hola @rschweizer ,
Gracias por mencionar este tema. Desafortunadamente, no existe una solución sencilla para esto, ya que codificar +
corre el riesgo de romper configuraciones que no usan fuentes S3. Por ahora, la solución más rápida sería codificar por separado +
después de generar la URL:
client.buildURL(path, params).replace(/\+/g, '%2B')
Sé que no es una respuesta satisfactoria, pero sé que actualmente estamos investigando una mejor solución para esto. No dude en volver a comentar si tiene alguna otra pregunta. Gracias
Hola @sherwinski ,
¡Gracias! Esa también es la solución rápida que se me ocurrió ayer :)
Avíseme si puedo ayudar con algo para encontrar una solución más elegante.
@rschweizer hey: wave: gracias por abrir este número y llamar nuestra atención. Me alegro de que tú y @sherwinski hayan encontrado una solución similar :)
En el futuro, ya estamos pensando más sobre cómo / cuándo debería / no debería tener lugar la codificación, así como en el manejo de casos extremos. Creé un documento interno que rastrea este problema y ya estamos trabajando en un more elegant solution
.
Voy a cerrar esto por ahora, pero _por favor_ no dude en comentar / tirar / abrir-un-problema nuevamente si tiene alguna pregunta, comentario o inquietud.
Comentario más útil
Hola @sherwinski ,
¡Gracias! Esa también es la solución rápida que se me ocurrió ayer :)
Avíseme si puedo ayudar con algo para encontrar una solución más elegante.