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.
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.
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.