Digital Ocean Spaces (S3) « impossible de signer la requête sans identifiants définis »

J’essaie de configurer Digital Ocean Spaces pour le stockage S3.

J’obtiens ceci lorsque j’essaie d’exécuter des sauvegardes…

Même chose lorsque je télécharge des photos…

J’ai cette configuration…

…mais je ne sais pas comment tester si cela fonctionne réellement. Je ne connais pas très bien ces systèmes. C’est juste pour un petit forum de groupe d’amis.

Initialement, j’avais ce qui suit en ligne, mais j’ai dû le commenter à nouveau dans l’app.yml car la reconstruction ne fonctionnait pas avec ces lignes actives. Je ne sais pas si c’est toujours nécessaire ou non à ce stade…

J’ai téléchargé manuellement un fichier depuis la zone d’administration de Digital Ocean Spaces, l’ai mis en public, et je peux l’ouvrir via un navigateur.

J’ai également créé manuellement le dossier “*-backups” dans DO Spaces.

Voici un exemple de mon manque de connaissances. Je suis bloqué ici et je ne sais pas vraiment pourquoi. D’une manière ou d’une autre, je me suis désinstallé de quelque chose et je ne sais pas comment revenir en arrière.

image
Pour une raison quelconque, ce qui se trouve habituellement dans /var/discourse semble maintenant être dans /var/www/discourse

Je suis juste bloqué à ce stade. J’ai cherché sur le forum et je n’ai rien trouvé qui puisse résoudre mon problème. J’ai passé une journée dans la même boucle. C’est dans le même ordre d’idées, mais il s’agit d’AWS S3 réel et non de DO Spaces (S3)…

Toute aide serait appréciée. Merci.

1 « J'aime »

Il vous manque le paramètre use_s3 qui est recommandé dans le sujet que vous avez lié.

Vous devriez copier-coller ces paramètres à partir du sujet que vous avez lié plutôt que d’essayer de les taper. Vous avez besoin de deux-points et non d’un signe égal.

Si vous voyez des choses dans /var/www/discourse, vous êtes à l’intérieur du conteneur. Vous devez quitter pour revenir au système d’exploitation.

1 « J'aime »

Merci pour vos commentaires.

Il est là. Je suppose qu’il n’apparaît tout simplement pas avec cette autre commande. J’avais mis le CDN en commentaire car il était indiqué qu’il y avait des problèmes avec, donc j’essayais d’isoler cela. Surtout parce que je ne suis pas sûr à 100 % que l’URL soit la bonne, car l’exemple utilisait un domaine personnalisé au lieu de celui par défaut de Spaces. C’était peut-être une mauvaise idée d’essayer de l’isoler. J’essayais beaucoup de choses.
Voici le paramètre complet…

Je n’en suis pas sûr à 100 %, mais je suis presque certain d’avoir fait du copier-coller. Je le fais habituellement.

J’ai eu une erreur en essayant de reconstruire, alors je suis retourné et j’ai remis ces lignes en commentaire…

Je vais essayer de les activer à nouveau et de l’exécuter.

Ah, « exit ».

C’est ce que je cherchais. Merci.

Qu’est-ce qui me manque sur cette partie S3 ?

J’ai supprimé le commentaire pour le rendre actif…

EDIT : Je viens de réaliser qu’il y a une faute de frappe dans cette dernière ligne. Je ne sais pas comment j’ai pu faire ça.

J’ai sauvegardé et essayé de reconstruire et j’obtiens ceci…

Cet avertissement de sécurité était nouveau. J’ai exécuté pour essayer de le résoudre…

chmod o-rwx containers/app.yml

J’ai vérifié la version de docker…

docker --version

Je cherche comment mettre ça à jour. Je pensais que le reconstruire mettrait ça à jour, mais peut-être pas.

Cela n’a pas résolu le problème. Même avec l’ancien commentaire désactivé et celui-ci copié/collé…

image

J’obtiens toujours une erreur lors de la reconstruction…

image
“n’a pas trouvé la clé attendue lors de l’analyse d’un mappage de bloc à la ligne 109 colonne 3”

Je ne suis pas sûr de la clé à laquelle il fait référence.

Les paramètres de clé d’accès et secrète sont dans les paramètres. Je ne sais pas comment tester pour m’assurer que ces paramètres fonctionnent réellement, mais ils y sont.

J’ai l’impression d’être proche, mais…

Après la reconstruction, il est resté bloqué en cours de réflexion…

image

J’ai laissé comme ça pendant quelques heures. Aucun changement.

J’ai commenté le CDN et j’ai de nouveau eu l’erreur « ligne 109 ». J’ai également commenté la zone inférieure et reconstruit. Je peux accéder au forum, mais je ne peux toujours pas télécharger de pièces jointes.

Lors de la reconstruction, il semble se bloquer ici pendant un moment.

image

Je ne sais pas si cela a une importance car il finit par passer sans aucune action.

Avec le CDN et la zone inférieure commentés, je peux faire fonctionner le forum, mais j’ai toujours le problème initial…

Je ne sais pas ce qui me manque.

Après la reconstruction, il est resté bloqué sur “thinking” (réflexion). Au début, j’ai pensé qu’il était peut-être en train de tout transférer ou de travailler en arrière-plan, alors je l’ai laissé…

Laissé ainsi pendant quelques heures. Aucun changement.

J’ai vérifié Spaces et aucun fichier n’a été téléchargé, donc je suppose qu’il était simplement bloqué sur quelque chose.

J’ai commenté le CDN et cela m’a redonné l’erreur “ligne 109”.

J’ai également commenté la zone inférieure et reconstruit. Je peux accéder au forum, mais je ne peux toujours pas télécharger de pièces jointes.

Lors de la reconstruction, il semble se bloquer ici pendant un moment, mais il finit par passer sans aucune action, donc je ne suis pas sûr que cela ait de l’importance…

Avec le CDN et la zone inférieure commentés, je peux faire fonctionner le forum, mais j’ai toujours le problème initial…

Je ne sais pas ce qui me manque. J’ai abandonné et laissé tous les paramètres S3 commentés pour l’instant.

NOTE EN MARGE : Existe-t-il une commande pour mettre à jour le docker ? Je pense que je le fais normalement via la zone d’administration, mais il ne me propose pas de passer à la mise à jour depuis la version 24.0.2. Je ne sais pas si c’est un gros problème. Je pense que la version actuelle est 24.0.7.

Je ne suis pas sûr si les paramètres de la zone d’administration remplacent les paramètres de app.yml ou vice versa, mais voici ces paramètres au cas où…

Je ne sais pas si les URL S3 et CDN sont censées inclure le nom du bucket ou non. Je ne suis pas non plus certain qu’il s’agisse de liens identiques.

J’espère que quelqu’un remarquera quelque chose de simple. Si vous avez lu jusqu’ici, merci encore !

Utilisez-vous le CDN de DigitalOcean Spaces ?

Si cela n’a pas chargé en 30 secondes, c’est probablement que ça ne chargera pas. Mais vous n’avez pas besoin d’attendre aussi longtemps. Vous pouvez regarder l’onglet réseau dans les outils de développement du navigateur et voir ce qui ne se charge pas.

Je ne suis pas sûr de ce qu’est le CDN social ocean, mais j’essaie juste d’utiliser le CDN intégré à Spaces.

Désolé, c’était « Digital Ocean ».

Le message que j’ai cité dit que vous ne devriez pas faire cela parce que cela ne fonctionne pas.

Si vous voulez plus d’aide de ma part, mon adresse e-mail se trouve dans mon profil.

1 « J'aime »

OK. C’est tellement bizarre.

QUELQUE CHOSE fonctionne maintenant. Je pensais avoir tout commenté (désactivé) et téléchargé une photo hier pour m’assurer que cela fonctionnait à nouveau. J’ai vérifié le chemin d’accès ce matin et il utilise le… CDN je suppose ?

https://XXXXXXX-storage.sfo3.digitaloceanspaces.com/optimized/2X/9/9b9fdb3eb27831650752b848363ea2a1a66ce137_2_375x500.jpeg

J’ai vérifié dans Spaces et il y a des images là-dedans…

image
Il semble que les images fonctionnent correctement maintenant. La seule chose à laquelle je peux penser est que j’ai décoché « S3 use IAM profile » dans les paramètres. Je suppose que c’est la clé qu’il recherchait et qu’il a cessé de rechercher. Je ne sais pas pourquoi j’avais coché cela en premier lieu. Probablement parce que je n’ai vraiment aucune idée de ce que je fais. :slight_smile:

image

J’ai toujours un problème pour exécuter les sauvegardes, mais c’est peut-être un problème d’espace Droplet. Il semble qu’il n’ait pas assez d’espace pour le mettre en scène localement avant de le télécharger. Je vais examiner cela séparément maintenant qu’il semble au moins connecté à l’espace.

image

Merci Jay, je vous contacterai plus tard cette semaine lorsque je pourrai à nouveau jouer avec ce forum d’amis. Je vais payer quelques factures pour l’instant.

1 « J'aime »

J’ai eu quelques minutes en attendant que mon conjoint se prépare, alors j’ai pensé vérifier l’espace. Après y avoir réfléchi davantage, j’ai réalisé que cela devait être le problème. J’ai vérifié avec…

df -h

Ah oui, vraiment plein. J’ai lancé…

docker system prune -a

J’ai lancé…

./launcher cleanup

Merci encore Jay.

Effectivement, cela a libéré plus de 20 Go.

J’ai lancé la sauvegarde manuellement et ça a fonctionné !!!

Maintenant, j’essaie de migrer tous les fichiers du stockage local vers S3…

rake uploads:migrate_to_s3

Souhaitez-moi bonne chance ! :slight_smile:

1 « J'aime »

J’ai vérifié quelques éléments ce matin en attendant le début d’une réunion.

Rake ne semblait pas fonctionner, ou peut-être est-il toujours en cours. Je ne peux pas encore le dire. L’utilisation de l’espace a diminué, mais lorsque j’ai vérifié manuellement d’anciennes photos, elles semblaient toujours avoir l’ancienne URL locale. Je devrai examiner cela plus en détail.

Je ne suis pas sûr de la différence entre rake et reback. Je suppose que l’un migre les fichiers et l’autre met à jour les chemins dans les publications. Il y a plus à apprendre.

Il utilise toujours beaucoup d’espace dans /import (1,4 Go) et /uploads (9,2 Go). Beaucoup pour notre petit forfait. J’essaie de décharger cela sur un stockage moins cher et ce sont de loin les plus gros morceaux.

Juste pour information à tous ceux qui configurent la même chose, voici ce qu’il utilise pour les URL de point de terminaison…

CDN
https://XXXXXX-storage.sfo3.cdn.digitaloceanspaces.com/original/2X/0/15740f130209eb1a6a4f147076eaa20e70a9772d.zip

ORIGINE
https://XXXXXX-storage.sfo3.digitaloceanspaces.com/original/2X/0/15740f130209eb1a6a4f147076eaa20e70a9772d.zip

La seule différence est le .cdn dans l’URL. Je dois mettre à jour mes paramètres.

D’après Copilot…
_________\_

Pour récuire les publications après avoir modifié le lien CDN dans Discourse, vous devez exécuter la tâche rake de récuisson afin que tout le HTML des publications cuites soit mis à jour avec les nouvelles URL d’actifs.

Voici le processus :


1. Entrer dans le conteneur

Shell

cd /var/discourse

./launcher enter app

Afficher plus de lignes


2. Exécuter la tâche de récuisson

Shell

rake posts:rebake

Afficher plus de lignes

Ceci va :

  • Recuire toutes les publications en utilisant les paramètres actuels (y compris votre nouvelle s3_cdn_url).

  • Mettre à jour le HTML cuit pour que les images et les téléchargements pointent vers le CDN.


Optionnel : Accélérer

Si vous avez un site volumineux, vous pouvez l’exécuter par lots :

Shell

rake posts:rebake[1000]

Afficher plus de lignes

Ceci recuit 1 000 publications à la fois.


3. Vérifier

Vérifiez quelques publications avec des images ou des téléchargements pour confirmer qu’elles utilisent maintenant l’URL du CDN.

_________\_
Il semble que cela fonctionne. Je vérifierai plus tard.

image

Je pars faire les beignets.

Ceci exécute le re-cuisson, mais pas seulement 1 000 à la fois. Il les exécute toutes et ignore la partie \[1000\]. Peut-être que ma syntaxe n’est pas tout à fait correcte.

Un autre rappel pour moi-même autant que pour les autres. Je cherchais cette URL dans le menu parce que je l’avais à l’envers ( .cdn.sfo3. au lieu de l’inverse - ce qui a évidemment cassé le SSL). Je n’arrivais pas à trouver le paramètre en cherchant. Puis j’ai trouvé une fenêtre que j’avais déjà ouverte. Je l’ai mise à jour et j’ai essayé de sauvegarder et j’ai obtenu ceci…

image
J’oublie qu’une fois que les paramètres sont ajoutés dans app.yml, ils disparaissent du menu des paramètres d’administration. Je m’en souviens maintenant.

Le re-cuisson semble avoir fonctionné, j’avais juste la mauvaise URL. Cela est en cours de mise à jour.

Je suis toujours à moins de 50 fichiers dans mon stockage Space, donc le rake de fichiers ne fonctionne pas. :thinking:

OK. Je pensais que c’était une petite percée ici. J’ai finalement compris quel était ce problème…

« did not find expected key while parsing a block mapping at line 106 column3 »

En parcourant quelques fils de discussion, j’ai vu ceci…

J’ai ouvert le mien et que vois-je, des espaces.

Je suis sûr de les avoir mis en pensant que ce n’était rien. Je les ai supprimés. Je pense que c’était principalement celui avant les « hooks: » auquel il faisait référence.

La reconstruction s’est bien passée. Merci @RGJ

Cependant, il n’aime toujours pas quelque chose.

Je ne vois toujours pas mon nombre d’éléments augmenter dans Spaces, donc il ne semble pas encore télécharger les fichiers /uploads vers ‘S3’. C’était quelque chose qui me laissait perplexe, donc je suis content que ce soit résolu. Mais je suis de retour à l’écran de chargement.

De plus, avec cela activé, j’obtiens juste l’écran de chargement.

Je l’ai commenté à nouveau…

Reconstruit à nouveau. Identique.

J’ai commenté les paramètres Spaces S3.

Reconstruit à nouveau.

Fonctionne

  • Chargement du forum
  • Chargement des images
    • Les nouvelles utilisant Spaces - Pas CDN
    • Les anciennes utilisant le stockage local

Ne fonctionne pas

  • Ne télécharge pas les fichiers vers Spaces
  • N’utilise pas le lien CDN pour le chargement des images
  • Si DISCOURSE_S3 et after_assets_precompile ne sont pas commentés, le forum reste bloqué sur le chargement dans un navigateur

À court d’idées. Je tourne en rond.

Je vais devoir laisser cela de côté pendant un moment. Au moins, cela évitera que l’espace ne soit plus un problème car les nouveaux téléchargements et les sauvegardes vont maintenant vers Spaces.

Il semble que ce soit résolu !

URL du CDN S3 mise à jour vers… https://XXXXX.sfo3.cdn.digitaloceanspaces.com

Ce paramètre obtient le chemin correct, mais j’ai été un peu dérouté car le nom du bucket doit être dans l’URL du CDN S3 mais PAS dans l’URL S3, donc ils ne semblent pas cohérents avec ce traitement.

Ensuite, j’ai exécuté…

rake uploads:migrate_to_s3 --trace

Avant, cela affichait dans les 200 éléments dans le CP des Spaces, mais j’ai ensuite remarqué…

4361 éléments 49,3 Gio…

…puis lors de l’actualisation…

4640 éléments 49,4 Gio…

…c’est vivant !!!

J’ai aussi exécuté ceci…

rake posts:rebake

…mais c’était avant de réaliser qu’il était toujours en cours de téléchargement, donc je pense que je reviendrai après qu’il semble s’arrêter de télécharger et les retraiter à nouveau.

Je dois laisser cela faire son travail pendant un moment. Je le ferai et je ferai un rapport s’il y a d’autre nettoyage à faire.

Bien qu’il ait ralenti dans l’augmentation du nombre d’éléments, il est toujours en cours de téléchargement et de croissance. Il a augmenté de 125 éléments supplémentaires pendant la nuit et un dossier de pierre tombale est apparu pour la première fois.

Je documente cela pour tout autre débutant qui traverse cela.

Voici ce qui a finalement fonctionné :

Ces paramètres devaient se trouver dans la configuration app.yml pour que les tâches rake s’exécutent correctement. Lorsqu’ils étaient uniquement dans la zone /admin/site_settings/, les tâches rake ne s’exécutaient pas correctement. Je recevais une erreur :

ERREUR : Assurez-vous que S3 est configuré dans config/discourse.conf ou les variables d’environnement

Les paramètres proviennent d’ici… Configure an S3 compatible object storage provider for uploads

Plus précisément, j’ai utilisé les paramètres Spaces non personnalisés avec deux espaces avant chaque ligne. …

DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: whatever
DISCOURSE_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
DISCOURSE_S3_ACCESS_KEY_ID: myaccesskey
DISCOURSE_S3_SECRET_ACCESS_KEY: mysecretkey
DISCOURSE_S3_CDN_URL: https://nyc3.cdn.digitaloceanspaces.com
DISCOURSE_S3_BUCKET: my-files
DISCOURSE_S3_BACKUP_BUCKET: my-files/my-backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false

NOTE : DISCOURSE_S3_REGION doit littéralement indiquer « whatever » et non quelque chose qui pourrait être interprété comme une véritable région S3 (c’est-à-dire us-west-1).

Aussi ces paramètres, dans la section hooks de la zone ## Plugins go here

after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets

C’est là que j’ai rencontré un problème la dernière fois. Une fois que c’était en place et que j’ai reconstruit, j’obtenais cet écran de chargement lorsque j’essayais d’ouvrir notre forum dans un navigateur.

C’est seulement parce qu’il recherche des actifs qui n’ont pas encore été mis à jour. C’est là qu’il est temps d’exécuter les tâches rake, depuis l’intérieur de l’application…

./launcher enter app

rake s3:upload_assets

Une fois que cela a été exécuté, le nombre d’éléments a augmenté et un dossier « assets » est apparu dans notre bucket…

Ensuite, le forum a commencé à se charger correctement. Ce sont les seuls paramètres liés à S3 que j’ai affichés dans ma zone /admin/site_settings…

J’ai exécuté ceci pour télécharger tous les fichiers et cela a mis à jour les URL de l’ancien chemin vers le nouveau (sans CDN).

rake uploads:migrate_to_s3 --trace

Le nombre d’éléments a plus que triplé après cela.

La seule chose que j’ai remarquée, c’est que les chemins d’images des anciens messages utilisaient l’URL de l’ENDPOINT S3, tandis que les images nouvellement publiées utilisaient l’URL du CDN S3.

https:/my-storage.sfo3.digitaloceanspaces.com/
vs
https:/my-storage.sfo3.cdn.digitaloceanspaces.com/

Cela ne m’importait pas vraiment car au moins tout utilisait S3.

Mais j’ai essayé d’exécuter…

rake posts:rebake

image

Cela l’a fait planter parce qu’il a manqué de mémoire. J’ai essayé d’exécuter ceci à la place…

rake posts:rebake_uncooked_posts

Il a manqué de mémoire plusieurs fois et s’est redémarré, puis a manqué de mémoire à nouveau. Je l’ai exécuté à nouveau. Finalement, il a fini de cuire tous les messages.

Une fois qu’il a fonctionné jusqu’à 100 %, tous les liens utilisaient enfin le chemin d’URL du CDN S3, les anciens et les nouveaux messages.

Très content que tout fonctionne désormais sur S3, y compris les sauvegardes. D’ailleurs, c’est probablement le bon moment pour en faire une !

J’espère que cela aidera quelqu’un.

Bonne chance !

1 « J'aime »