Tentar buscar uma imagem para um objeto em S3 com '+'
em sua chave causa 404.
Exemplo:
GET https://<cname>.imgix.net/E+P-003_D.jpeg // -> 404
GET https://<cname>.imgix.net/E%2BP-003_D.jpeg // -> 200
Eu suspeito que seja devido a encodeURI
em https://github.com/imgix/imgix-core-js/blob/master/src/imgix-core-js.js#L106. Como a chave S3 é um caminho, o módulo usa encodeURI
, que aceita '+'
símbolos e não os codifica. S3, no entanto, os interpreta como espaços.
Ei @rschweizer ,
Obrigado por trazer isso à tona. Infelizmente não há uma solução direta para isso, pois codificar +
corre o risco de interromper configurações que não usam fontes S3. Por enquanto, a solução mais rápida seria codificar separadamente +
após gerar o URL:
client.buildURL(path, params).replace(/\+/g, '%2B')
Sei que não é uma resposta satisfatória, mas sei que estamos investigando uma solução melhor para isso. Sinta-se à vontade para comentar se tiver outras perguntas. Obrigado
Olá @sherwinski ,
Obrigada! Essa também é a solução rápida, pensei ontem :)
Deixe-me saber, se eu puder ajudar em alguma coisa para encontrar uma solução mais elegante.
@rschweizer hey: wave: obrigado por abrir esta edição e trazer isso à nossa atenção. Estou feliz que você e @sherwinski tenham encontrado uma solução semelhante :)
Avançando, já estamos pensando mais sobre como / quando a codificação deve / não deve ocorrer, bem como lidar com casos extremos. Eu criei um documento interno rastreando este problema e já estamos trabalhando em um more elegant solution
.
Vou encerrar isso agora, mas _por favor_ sinta-se à vontade para comentar / puxar / abrir um problema novamente se tiver alguma dúvida, comentário ou preocupação.
Comentários muito úteis
Olá @sherwinski ,
Obrigada! Essa também é a solução rápida, pensei ontem :)
Deixe-me saber, se eu puder ajudar em alguma coisa para encontrar uma solução mais elegante.