Fazendo com que o Firefox e o Chrome baixem a imagem com um nome específico

Dadohttps://www.example.com/image-list:

...
<a href="/image/1337">
  <img src="//static.example.com/thumbnails/86fb269d190d2c85f6e0468ceca42a20.png"/>
</a>
<a href="//static.example.com/full/86fb269d190d2c85f6e0468ceca42a20.png"
   download="1337 - Hello world!.png">
  Download
</a>
...

Este é um ambiente de script do usuário, portanto não tenho acesso à configuração do servidor. Assim sendo:

Não consigo fazer com que o servidor aceite nomes de arquivos amigáveis, comohttps://static.example.com/full/86fb269d190d2c85f6e0468ceca42a20 - 1337 - Hello World!.png.Não consigo configurar o compartilhamento de recursos de origem cruzada.www.example.com estatic.example.com são separados por parede CORS por design.

Como exibir o Firefox e o ChromeSalvar arquivo como diálogo com o nome do arquivo sugerido"1337 - Olá, mundo! .Png" quando um usuário clica no link "Download"?

Depois de algumas falhas e buscas no Google, aprendi esses problemas:

O Firefox ignora completamente a existência dodownload atributo em alguns tipos MIME de imagem.O Firefox ignora completamente a existência dodownload atributo nos links entre sites.O Chrome ignora completamente o valor dodownload atributo nos links entre sites.

Todos esses pontos não fazemqualquer Para mim, tudo parece "vamos colocar limitações aleatórias e não sensoriais no recurso", mas eu tenho que aceitá-las como é o meu ambiente.

Existe alguma maneira de resolver o problema?

Antecedentes: estou escrevendo um script de usuário para um quadro de imagens que usa hashes MD5 como nomes de arquivos. Quero facilitar a gravação com nomes amigáveis. Qualquer coisa que me aproxime disso seria útil.

Acho que posso contornar as limitações usando URLs de objeto para blobs e um proxy local com cabeçalhos CORS hackeados, mas essa configuração está obviamente além do razoável. Salvar através da tela pode funcionar (as imagens são "protegidas" pelo CORS também neste caso?), Mas forçará a compactação com perda dupla ou a conversão com perda para sem perdas, dados arquivos JPEG, nenhum dos quais é bom.

questionAnswers(6)

yourAnswerToTheQuestion