Question rapide sur le stockage de fichiers AWS S3 - Structure ?

Bonjour !

J’ai effectué une recherche dans Support mais je n’ai pas trouvé de réponse existante, alors veuillez m’excuser pour cette question rapide de support :

Nous utilisons S3 pour stocker les fichiers Discourse depuis environ 2016. En regardant la racine du bucket S3, j’ai été surpris de voir une structure de répertoire « au-dessus » de celles que je m’attendais à trouver, par exemple optimized/, original/, etc.

Pensez-vous qu’il soit sûr de supprimer les répertoires numérotés à la racine, par exemple 99/, en raison peut-être d’une copie erronée survenue il y a longtemps ? Il est possible qu’ils aient été copiés il y a longtemps au mauvais endroit. Est-il possible que les publications contiennent des chemins figés vers ces emplacements que je ne veux pas casser ?

Voici à quoi cela ressemble, et mon objectif est de nettoyer cela (si nécessaire) :

Autrement dit, si quelqu’un utilise déjà S3, quel est le nom des objets à la racine du stockage, s’il vous plaît ?

Merci pour toute aide. À bientôt :beers:

Bonne question, qui connaîtrait l’histoire de cette @sam ?

Je pense que nous sommes peut-être un peu étranges :slight_smile: car nous utilisons Discourse depuis environ 2015 et avons changé de lieu de stockage au fil des ans.

Nous avons commencé par utiliser le stockage local pour les fichiers, puis, avec une certaine croissance, nous sommes passés à l’utilisation de téléchargements stockés sur S3. À cette époque, je ne pense pas que nous ayons déplacé les fichiers existants en régénérant les messages, de sorte que les plus anciens messages utilisent toujours les URLs de stockage non local.

Une chose que je devrais souligner, c’est que nous n’allons rien supprimer tel que cela est actuellement, car même si l’organisation a changé au fil des ans, nous parlons de petits nombres, et il est plus sûr de laisser ce que nous avons de toute façon.

Honnêtement, je ne sais pas comment ces dossiers 96->99 sont apparus, ce n’est pas là que nous stockons les téléchargements.

Merci d’avoir regardé, @sam, c’est bon à savoir. Je me demande si nous avons copié manuellement vers S3 ce que nous avions, et que cela a mal tourné. Cela n’a causé aucun dommage.

Nous avons à la racine du bucket S3 :

_emoji/
_optimized/
optimized/
original/
tombstone/

Plus un grand nombre de répertoires numérotés allant de 1/ à 225/. Chaque répertoire numéroté contient un seul fichier image, avec un nom comme ‘874c0706216382af.jpg’.

Tombstone a un cycle de vie S3 pour être marqué comme supprimé après 30 jours.

Donc, en supposant, est-ce que seuls optimized/, original/ et tombstone/ sont utilisés ?

Oui, cela semble correct.

Ces fichiers sont toujours présents sur les très anciens forums (vers 2014). Je pense qu’ils sont antérieurs à optimized et original, et je soupçonne qu’on continue de s’y référer.

Je n’ai pas pu résister à vouloir en savoir plus. Il s’agit bien d’un ancien schéma de téléversement. Il a été abandonné plus tard que je ne le pensais, en mai 2015, avec ce commit.

https://github.com/discourse/discourse/commit/9ded21e4c61d4c1e71f57a778d519ddea26c96e2

Ces téléversements sont toujours utilisés, donc ne les supprimez pas !

Merci, Michael. Comme ces fichiers datent du début de notre activité en 2014, leurs numéros sont petits et nous les laisserons tels quels. :slight_smile:

C’est intéressant : nous avons récemment migré notre serveur et opté pour une restauration à partir d’une sauvegarde Discourse (plutôt que de mettre à jour la version de base Unix directement). Je pense (bien que je ne sois pas certain à 100 %) que la restauration n’a pas correctement réinstallé ces fichiers locaux. Ils étaient bien présents dans l’archive de sauvegarde, mais le processus de restauration semblait ne fonctionner que pour les versions optimisées et originales.

Ce n’était pas un gros problème, car nous avons pu extraire ces fichiers nous-mêmes à partir de l’archive de sauvegarde (lorsque nous avons remarqué que les anciens et nouveaux serveurs présentaient des différences dans leurs uploads et leur contenu). Cependant, cela pourrait poser problème à quelqu’un d’autre, donc je tenais à le mentionner ici.

Bien que 99,9 % de nos uploads soient désormais servis depuis S3 (nous sommes passés du stockage local à S3 assez tôt), je pense que nous avons dû copier les fichiers locaux lors de la création manuelle du bucket S3. En y repensant, nous aurions probablement dû régénérer les publications, mais cela a toujours fonctionné correctement, surtout parce que les publications concernées sont très anciennes et contiennent des URLs d’upload de fichiers locaux.