Hacer que Firefox y Chrome descarguen imágenes con un nombre 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 es un entorno de script de usuario, por lo que no tengo acceso a la configuración del servidor. Como tal:

No puedo hacer que el servidor acepte nombres de archivo fáciles de usar comohttps://static.example.com/full/86fb269d190d2c85f6e0468ceca42a20 - 1337 - Hello World!.png.No puedo configurar el uso compartido de recursos de origen cruzado.www.example.com ystatic.example.com están separados por la pared CORS por diseño.

Cómo hacer que Firefox y Chrome se muestrenGuardar archivo como cuadro de diálogo con el nombre de archivo sugerido"1337 - ¡Hola, mundo! .Png" cuando un usuario hace clic en el enlace "Descargar"?

Después de fallar y buscar en Google, aprendí estos problemas:

Firefox ignora por completo la existencia de ladownload atributo en algunos tipos de imágenes MIME.Firefox ignora por completo la existencia de ladownload atributo en enlaces entre sitios.Chrome ignora por completo el valor dedownload atributo en enlaces entre sitios.

Todos estos puntos no hacenalguna Para mí, todos parecen "pongamos limitaciones no sensoriales aleatorias en la función", pero tengo que aceptarlos ya que es mi entorno.

¿Existen formas de resolver el problema?

Antecedentes: estoy escribiendo un script de usuario para una placa de imagen que utiliza hashes MD5 como nombres de archivo. Quiero hacer que guardar con nombres fáciles de usar sea más fácil. Cualquier cosa que me acerque a esto sería útil.

Supongo que puedo sortear las limitaciones mediante el uso de URL de objetos para blobs y un proxy local con encabezados CORS pirateados, pero esta configuración es obviamente más que razonable. Guardar a través del lienzo podría funcionar (¿las imágenes están "protegidas" por CORS en este caso también?), Pero forzará la compresión con doble pérdida o la conversión de pérdida a pérdida, dados los archivos JPEG, ninguno de los cuales es bueno.

Respuestas a la pregunta(6)

Su respuesta a la pregunta