Js-core: Le signe plus dans la clé S3 provoque 404

Créé le 16 déc. 2019  ·  3Commentaires  ·  Source: imgix/js-core

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.

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.

Tous les 3 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

hennessyevan picture hennessyevan  ·  6Commentaires

akshaysrin picture akshaysrin  ·  3Commentaires

ghost picture ghost  ·  3Commentaires

konijn picture konijn  ·  3Commentaires

iklementiev picture iklementiev  ·  3Commentaires