Skip to content

Releases: Smeagolworms4/image-resizer

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 00:18
Version 1.3.0

v1.2.0

Choose a tag to compare

@Smeagolworms4 Smeagolworms4 released this 05 Aug 22:44

Les URL peuvent désormais être signées. Les dimensions vivent dans l'URL, ce qui rend le service agréable à utiliser — et facile à détourner : n'importe qui lisant le HTML peut réclamer _cover_1999_1999_100.avif et toutes ses variantes, chacune étant un défaut de cache suivi d'un décodage-redimensionnement-encodage complet pour une image qu'aucune page n'affichera.

Nouveautés depuis la 1.1.0

  • SIGNATURE_KEY : une adresse n'est servie que si elle porte le HMAC calculé avec la clé, donc seule l'application qui écrit vos pages sait en fabriquer. Le refus tombe avant toute lecture de fichier : une requête non signée coûte un HMAC, et rien d'autre.
  • La signature est un champ de plus à la fin du preset, juste avant l'extension : /photos/plage.jpg/_cover_320_320_80_3d08b5b853888bb5.webp. L'URL reste une adresse immuable, et l'extension reste en dernier.
  • SIGNATURE_ALGORITHM (sha256 par défaut, sha1, sha512) et SIGNATURE_LENGTH (16 caractères par défaut) pour ceux qui ont déjà une convention en place.
  • BASE_PATH n'entre pas dans le calcul : déplacer le service sous /images n'invalide pas les URL déjà publiées.
  • Documentation dédiée — SIGNATURE.fr.md et SIGNATURE.md : la règle en trois étapes, des valeurs de référence pour valider une implémentation, et le code en JavaScript, PHP, Python, .NET et Java.

CompatibilitéSIGNATURE_KEY est vide par défaut, et une clé vide désactive tout le mécanisme : rien n'est vérifié, et les URL existantes fonctionnent exactement comme avant. Aucune migration.

Vérifications — 68 tests sur Node 20, 22 et 24, dont 10 pour la signature : qu'une clé vide ne change rien, qu'une signature n'ouvre que la variante pour laquelle elle a été calculée — une signature volée n'achète pas un 2000×2000 — et que ni BASE_PATH ni l'encodage des caractères n'entrent dans le calcul. Plus le test de l'image sur les trois architectures publiées : linux/amd64, linux/arm64 et linux/arm/v7.

Image : docker pull smeagolworms4/image-resizer:v1.2.0

v1.1.0

Choose a tag to compare

@Smeagolworms4 Smeagolworms4 released this 01 Aug 14:41

Toute la configuration passe par des variables d'environnement — 63 réglages, déclarés dans l'image avec leur valeur par défaut, visibles d'un simple docker run --rm smeagolworms4/image-resizer:latest env.

Nouveautés depuis la 1.0.0

  • Décodage et redimensionnement réglables : AUTO_ROTATE, ALLOW_ENLARGEMENT, DEFAULT_POSITION (dont entropy / attention), RESIZE_KERNEL, CONTAIN_BACKGROUND, FAIL_ON.
  • Encodage réglable format par format : mozjpeg, JPEG progressif, sous-échantillonnage chroma, palette PNG, effort et sans-perte WebP et AVIF.
  • FETCH_HEADERS pour lire un stockage privé, FETCH_REDIRECT, SHUTDOWN_TIMEOUT.
  • Le docker-compose.yml n'impose plus de fichier .env : les variables sont dans environment:.
  • Le fichier HEIC de test rejoint les images d'exemple, donc l'image publiée permet de vérifier la chaîne HEVC sans rien monter.

Vérifications — 58 tests sur Node 20, 22 et 24, plus un test de l'image (démarrage, utilisateur non privilégié, heif-convert, volume de cache, dimensions rendues) sur les trois architectures publiées : linux/amd64, linux/arm64 et linux/arm/v7. Trois tests de cohérence garantissent que le Dockerfile, .env.example et les deux README décrivent exactement les réglages que le code applique.

Image : docker pull smeagolworms4/image-resizer:v1.1.0

v1.0.0

Choose a tag to compare

@Smeagolworms4 Smeagolworms4 released this 01 Aug 14:05

First version