Js-core: Pluszeichen in S3-Taste verursacht 404

Erstellt am 16. Dez. 2019  ·  3Kommentare  ·  Quelle: imgix/js-core

Der Versuch, ein Bild für ein Objekt in S3 mit einem '+' im Schlüssel abzurufen, führt zu 404.

Beispiel:

GET https://<cname>.imgix.net/E+P-003_D.jpeg // -> 404
GET https://<cname>.imgix.net/E%2BP-003_D.jpeg // -> 200

Ich vermute, es liegt an encodeURI in https://github.com/imgix/imgix-core-js/blob/master/src/imgix-core-js.js#L106. Da der S3-Schlüssel ein Pfad ist, verwendet das Modul encodeURI , das '+' Symbole akzeptiert und nicht codiert. S3 interpretiert diese jedoch als Leerzeichen.

Hilfreichster Kommentar

Hallo @sherwinski ,

Danke schön! Das ist auch die schnelle Lösung, die ich mir gestern ausgedacht habe :)

Lassen Sie es mich wissen, wenn ich Ihnen helfen kann, eine elegantere Lösung zu finden.

Alle 3 Kommentare

Hallo @schweizer ,
Danke, dass du das ansprichst. Leider gibt es dafür keine einfache Lösung, da das Codieren von + das Risiko birgt, Setups zu zerstören, die keine S3-Quellen verwenden. Im Moment wäre die schnellste Lösung, + nach dem Generieren der URL separat zu codieren:

client.buildURL(path, params).replace(/\+/g, '%2B')

Ich weiß, dass dies keine zufriedenstellende Antwort ist, aber ich weiß, dass wir derzeit eine bessere Lösung dafür suchen. Kommentieren Sie gerne zurück, wenn Sie weitere Fragen haben. Danke

Hallo @sherwinski ,

Danke schön! Das ist auch die schnelle Lösung, die ich mir gestern ausgedacht habe :)

Lassen Sie es mich wissen, wenn ich Ihnen helfen kann, eine elegantere Lösung zu finden.

@rschweizer hey :wave: danke, dass hast . Ich freue mich, dass Sie und @sherwinski eine ähnliche Lösung gefunden haben :)

In Zukunft denken wir bereits intensiver darüber nach, wie/wann die Kodierung erfolgen soll/sollte, sowie über den Umgang mit Grenzfällen. Ich habe ein internes Dokument erstellt, das dieses Problem verfolgt, und wir arbeiten bereits an einem more elegant solution .

Ich werde dies vorerst schließen, aber _bitte_ zögern Sie nicht, ein Problem erneut zu kommentieren/ziehen/öffnen, wenn Sie Fragen, Kommentare oder Bedenken haben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

hennessyevan picture hennessyevan  ·  6Kommentare

ghost picture ghost  ·  3Kommentare

devfrey picture devfrey  ·  3Kommentare

AaronAcerboni picture AaronAcerboni  ·  3Kommentare

akshaysrin picture akshaysrin  ·  3Kommentare