Malheureusement, rien n’a fonctionné pour moi à 100 %. Qu’avez-vous finalement fait ?
Une idée de comment cela pourrait fonctionner dans les versions 3.x actuelles ? J’ai encore un tas d’images sur S3 que je dois trouver un moyen de récupérer en local. Ouvert aux suggestions. (le rake uploads:migrate_from_s3 n’existe plus)
J’ai tout configuré pour fonctionner en local (seules les sauvegardes sont sur S3). J’ai trouvé que de nombreux posts pointent encore vers S3 avec des liens comme :
<img> src="//x.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG" width="308" height="206">
qui pointe vers
https://xxx.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG
Avez-vous des suggestions à ce sujet ? Je suis vraiment fatigué d’avoir des problèmes à chaque mise à jour ou changement ![]()
Non résolu. Ce serait bien si Discourse avait une solution.
Oh. Si c’est votre site et que vous avez vos éléments sur S3, vous devriez pouvoir activer S3, activer le paramètre caché décrit dans Enable hidden setting to include S3 uploads in the backups, faire une sauvegarde, changer la configuration pour des images locales et restaurer la sauvegarde.
J’aimerais savoir si quelqu’un a réussi à faire fonctionner cela.
Cela fonctionne pour tous les sites qui migrent de l’hébergement Discourse.org vers l’auto-hébergement (et qui avaient ce paramètre activé avant d’obtenir leur sauvegarde).
C’est un peu délicat car vous devez avoir tous les paramètres S3 configurés (dans votre fichier YML) lorsque vous créez la sauvegarde, puis les désactiver tous (partout, y compris dans la base de données si vous les y avez jamais définis) avant d’effectuer la restauration.
C’est une méthode très logique, mais elle ne fonctionne pas pour ceux qui utilisent Cloudflare R2. Ou alors ce problème ne concerne que moi. Lorsque j’ai effectué une sauvegarde, j’ai également activé le paramètre caché. Malheureusement, cela n’inclut pas les fichiers dans R2 dans la sauvegarde. Il donne l’erreur ici : Uploads in cloudflare R2 are not added to the backup: Failed to download ******* because Aws::S3::Errors::Http501Error
La documentation et votre expérience suggèrent que R2 n’est pas pris en charge, vous devrez donc résoudre le problème autrement.
Je pensais que cela fonctionnait pour moi, mais je n’ai pas testé très attentivement et je ne l’ai pas utilisé au-delà d’un test de fumée trivial.
Si la sauvegarde ne parvient pas à télécharger les fichiers depuis R2, vous devrez utiliser un autre outil pour récupérer les fichiers depuis R2, puis les envoyer vers votre nouveau bucket, et enfin mettre à jour la base de données manuellement (vous pouvez rechercher des sujets en utilisant la tâche rake remap, je pense).
C’est un processus complexe, vous devrez donc bien comprendre R2, S3 et les téléchargements de Discourse. Il sera probablement difficile d’expliquer vos problèmes exacts avec suffisamment de spécificité pour obtenir une solution sur un forum.
Je télécharge manuellement les fichiers et je les téléverse sur le serveur. Pour ceux qui demandent comment faire, vous pouvez vous connecter aux comptes S3 avec le programme winscp. Ensuite, vous pouvez facilement importer les fichiers sur votre ordinateur. Ensuite, je l’ai téléversé en local et j’ai recréé les sujets, il a affiché 0 message. Il n’a pas agi. Je l’ai changé quelque temps et cela n’a rien trouvé non plus. Peut-être ai-je manqué un point, je ne veux pas le dire sans tester à nouveau, c’était peut-être ma faute. Si je réessaie, j’écrirai les résultats. Merci.
La partie facile du problème est d’envoyer les fichiers sur votre serveur.
Vous pouvez consulter les téléversements en exécutant :
cd /var/discourse
./launcher enter app
rails c
Upload.pluck(:url)
Cela affichera les URL de vos téléversements. Ensuite, vous devrez modifier tous ces téléversements afin qu’ils aient le nouveau chemin vers votre nouveau bucket. Vous pouvez essayer de rechercher la commande remap. Je pense qu’elle pourrait fonctionner.
Je l’ai téléversé localement et j’ai recréé les sujets,
Je ne suis pas sûr de ce que cela signifie.
changer la configuration pour les images locales
Pouvez-vous me dire comment faire cette partie, voulez-vous dire simplement désactiver le paramètre « inclure le téléchargement S3 dans les sauvegardes » ou autre chose ?
Configurer un fournisseur de stockage d’objets compatible S3 pour les téléchargements décrit comment configurer S3 en ajoutant à votre app.yml. Si vous ne l’avez pas fait de cette façon, alors annulez tous les paramètres S3 dans les paramètres du site, puis faites-le de cette façon.
Si vous l’avez fait de cette façon, alors commentez ces paramètres (ou peut-être juste use_s3 et le bucket de téléchargement).