PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
104 stars 102 forks source link

Medias thumnail et url_for #1361

Open joelclems opened 3 years ago

joelclems commented 3 years ago

Cette issue concerne l'api pour les thumbnail

on m'a fait part d'une erreur, ou l'api pour les thumbnail http:///geonature/api/gn_commons/media/thumbnails/2/100 redirigeait vers http://localhost/geonature/api/static/medias/thumbnails/13/2_thumbnail_100.jpg

cela viendrait de la function get_thumbnail_url qui utilise url_for

https://github.com/PnX-SI/GeoNature/blob/60c6f847a25d8024094217d119c1bef80f678554/backend/geonature/core/gn_commons/repositories.py#L343

API_ENDPOINT est bien configuré je ne retrouve pas cette erreur sur notre serveur de demo

est ce que la configuration du serveur peut affecter url_for ?

( https://blog.macuyiko.com/post/2016/fixing-flask-url_for-when-behind-mod_proxy.html https://stackoverflow.com/questions/22312014/flask-redirecturl-for-error-with-gunricorn-nginx ) on pourrait changer cette ligne par

        thumb_url = current_app.config["API_ENDPOINT"] + '/' +  relative_path 

ce qui serait plus robuste

bouttier commented 3 years ago

L’utilisation d’url_for est à largement privilégier par rapport à la construction manuelle de l’URL. En effet, si un jour on décide de changer le chemin d’accès des fichiers statiques, alors il faudra aller modifier l’ensemble des URL construites manuellement dans le code, tandis qu’url_for est prévu pour cela et prend en compte le paramètre de configuration static_url_path.

Je suis étonné par ce problème de nom d’hôte, dans la mesure où url_for génère des URL relative par défaut, donc le nom d’hôte n’a pas lieu d’être modifié. Il est possible que la configuration du serveur soit en cause oui. Pour essayer de comprendre, peux-tu donner un peu plus d’informations : vers quelle URI t’attendais-tu à être redirigé ? Confirmes-tu que geonature est bien le nom du domaine pointant sur ton instance geonature ? D’où provient la requête vers l’URL d’API ?

joelclems commented 3 years ago

C'est une erreur qui m'a été remontée par @Mounir-jelassi

l'api http://<serveur>/geonature/api/gn_commons/media/thumbnails/2/100

crée une miniature de l'image de hauteur 100px si elle n'existe pas déjà et redirige vers l'adresse de cette dernière, cela permet de créer à la volée des miniature de toutes taille

l'url attendue etait

http://<serveur>/geonature/api/static/medias/thumbnails/13/2_thumbnail_100.jpg

et à la place on avait

http://localhost/geonature/api/static/medias/thumbnails/13/2_thumbnail_100.jpg

la requete provient du module monuitoring, on peut trouver un équivalelent avec les thumbnail des médias dans occtax (meme composants)

je n'avais pas croisé cette erreur par ailleurs dans d'autres installation.