Déploie sur Garage via Hugo : documenter le changement des options s3ForcePathStyle=true #72

Open
opened 2025-01-27 22:56:16 +00:00 by professed_heat · 0 comments

Salut,

J'ai voulut mettre à jour mon blog via hugo deploy et ce fût une galère.

Déjà, sachez qu'il faut utiliser la version de hugo avec la fonction deploy , ce qui n'est pas le cas par défaut désormais. Sur Arch & dérivés, heureusement maintenant ça l'est, mais vérifiez.

Ensuite, si vous entrez les commandes tel que fournies sur la page Informations de connexion > S3 (recommandé) > Hugo, ça ne fonctionnera pas et donnera l'erreur suivante :

 » hugo deploy
Deploying to target "" (s3://bucket?endpoint=garage.deuxfleurs.fr&s3ForcePathStyle=true&region=garage)
Error: open bucket s3://bucket?endpoint=garage.deuxfleurs.fr&s3ForcePathStyle=true&region=garage: unknown query parameter "s3ForcePathStyle"

Parce que y'a eu des changements dans le SDK utilisé par Hugo pour faire l'upload S3. Ça as causé des soucis à d'autres personnes, mais heureusement cette personne en as parlé sur son blog : https://blog.frodux.in/post/hugo-minio/

J'ai donc essayé avec la configuration suivante :

[[deployment.targets]]
 URL = "s3://blog.xyz?endpoint=garage.deuxfleurs.fr&awssdk=v2&use_path_style=true&disable_https=false&region=garage"

Mais j'ai eu :

» hugo deploy                                                                                                                                     1 ↵
Deploying to target "" (s3://blog.xyz?endpoint=garage.deuxfleurs.fr&awssdk=v2&use_path_style=true&disable_https=false&region=garage)
Error: blob (code=Unknown): operation error S3: ListObjectsV2, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Get "/garage.deuxfleurs.fr/blog.xyz?list-type=2&max-keys=1000": unsupported protocol scheme ""

J'ai donc modifié la commande pour forcer l'utilisation du protocol v1, grâce à

[[deployment.targets]]
 URL = "s3://blog.xyz?endpoint=garage.deuxfleurs.fr&awssdk=v1&s3ForcePathStyle=true&region=garage"

Le changement étant l'ajout de &awssdk=v1 dans les options de l'URL.

Et là, ça fonctionne.


Cela dit, le fait de forcer l'utilisation d'une version antérieur du SDK n'est pas forcément optimale. Peut être que Garage ne supporte pas encore cette nouvelle version ?

Dans tout les cas, j'ouvre ce ticket au cas où d'autres aurait ce soucis, et en attendant de pouvoir modifier la doc affichée dans Guichet.

Salut, J'ai voulut mettre à jour mon blog via `hugo deploy` et ce fût une galère. Déjà, sachez qu'il faut utiliser [la version de `hugo` avec la fonction `deploy`](https://gohugo.io/hosting-and-deployment/hugo-deploy/) , ce qui n'est pas le cas par défaut désormais. Sur Arch & dérivés, heureusement maintenant ça l'est, mais vérifiez. Ensuite, si vous entrez les commandes tel que fournies sur la page Informations de connexion > S3 (recommandé) > Hugo, ça ne fonctionnera pas et donnera l'erreur suivante : ``` » hugo deploy Deploying to target "" (s3://bucket?endpoint=garage.deuxfleurs.fr&s3ForcePathStyle=true&region=garage) Error: open bucket s3://bucket?endpoint=garage.deuxfleurs.fr&s3ForcePathStyle=true&region=garage: unknown query parameter "s3ForcePathStyle" ``` Parce que y'a eu des [changements dans le SDK utilisé par Hugo](https://github.com/google/go-cloud/issues/3472) pour [faire l'upload S3](https://github.com/google/go-cloud/pull/3473). Ça as causé des soucis à d'autres personnes, mais heureusement cette personne en as parlé sur son blog : https://blog.frodux.in/post/hugo-minio/ J'ai donc essayé avec la configuration suivante : ``` [[deployment.targets]] URL = "s3://blog.xyz?endpoint=garage.deuxfleurs.fr&awssdk=v2&use_path_style=true&disable_https=false&region=garage" ``` Mais j'ai eu : ``` » hugo deploy 1 ↵ Deploying to target "" (s3://blog.xyz?endpoint=garage.deuxfleurs.fr&awssdk=v2&use_path_style=true&disable_https=false&region=garage) Error: blob (code=Unknown): operation error S3: ListObjectsV2, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Get "/garage.deuxfleurs.fr/blog.xyz?list-type=2&max-keys=1000": unsupported protocol scheme "" ``` J'ai donc modifié la commande pour forcer l'utilisation du protocol v1, grâce à ``` [[deployment.targets]] URL = "s3://blog.xyz?endpoint=garage.deuxfleurs.fr&awssdk=v1&s3ForcePathStyle=true&region=garage" ``` Le changement étant l'ajout de `&awssdk=v1` dans les options de l'URL. Et là, ça fonctionne. ---- Cela dit, le fait de forcer l'utilisation d'une version antérieur du SDK n'est pas forcément optimale. Peut être que Garage ne supporte pas encore cette nouvelle version ? Dans tout les cas, j'ouvre ce ticket au cas où d'autres aurait ce soucis, et en attendant de pouvoir modifier la doc affichée dans Guichet.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Deuxfleurs/guichet#72
No description provided.