Essayer de récupérer une image pour un objet dans S3 avec un '+'
dans sa clé provoque 404.
Exemple:
GET https://<cname>.imgix.net/E+P-003_D.jpeg // -> 404
GET https://<cname>.imgix.net/E%2BP-003_D.jpeg // -> 200
Je suppose que cela est dû à encodeURI
dans https://github.com/imgix/imgix-core-js/blob/master/src/imgix-core-js.js#L106. Comme la clé S3 est un chemin, le module utilise encodeURI
, qui accepte les symboles '+'
et ne les encode pas. S3, cependant, les interprète comme des espaces.
Salut @rschweizer ,
Merci d'avoir soulevé cela. Malheureusement, il n'y a pas de solution simple pour cela car l'encodage du +
risque de casser les configurations qui n'utilisent pas les sources S3. Pour l'instant, la solution la plus rapide serait d'encoder séparément le +
après avoir généré l'URL :
client.buildURL(path, params).replace(/\+/g, '%2B')
Je sais que ce n'est pas une réponse satisfaisante, mais sachez que nous étudions actuellement une meilleure solution pour cela. N'hésitez pas à commenter si vous avez d'autres questions. Merci
Salut @sherwinski ,
Merci! C'est aussi la solution rapide, j'ai trouvé hier :)
Faites-moi savoir si je peux aider avec quoi que ce soit à trouver une solution plus élégante.
@rschweizer hé :wave: merci d'avoir ouvert ce problème et d'avoir porté cela à notre attention. Je suis heureux que vous et @sherwinski ayez trouvé une solution similaire :)
À l'avenir, nous réfléchissons déjà plus à comment/quand l'encodage devrait/ne devrait pas avoir lieu ainsi qu'à la gestion des cas extrêmes. J'ai créé un document interne de suivi de ce problème et nous travaillons déjà sur un more elegant solution
.
Je vais clore ceci pour le moment, mais _s'il vous plaît_ n'hésitez pas à commenter/tirer/ouvrir-un-problème à nouveau si vous avez des questions, des commentaires ou des préoccupations.
Commentaire le plus utile
Salut @sherwinski ,
Merci! C'est aussi la solution rapide, j'ai trouvé hier :)
Faites-moi savoir si je peux aider avec quoi que ce soit à trouver une solution plus élégante.