Configurer un fournisseur de stockage d'objets compatible S3 pour les téléchargements

Salut @mcwumbly. C’était très facile à trouver quand je pouvais rechercher « clone S3 ». Je n’ai pas pu le trouver tout à l’heure. Y avait-il quelque chose qui n’allait pas avec ce titre ? Existe-t-il une recherche qui le trouvera ? Pourrions-nous ajouter une (je ne me souviens plus comment ça s’appelle) chose pour qu’elle puisse se lier automatiquement sur certains mots comme le fait l’installation standard (mais je ne trouve pas les mots à utiliser).

3 « J'aime »

En tant que personne qui lie ces sujets plusieurs fois par semaine, je suis un peu d’accord :langue_tirée:

Peut-être ajouter « clones s3 » au corps de l’OP aide-t-il à la recherche ?

2 « J'aime »

J’ai trouvé « compatible S3 » plus courant dans la nature, c’est pourquoi je l’ai changé lors d’un nettoyage général des titres de documentation, par exemple : AWS S3 Compatible Object Storage | MinIO

Je pense que la suggestion de mettre d’autres termes de recherche dans le corps du message original est judicieuse. (Je viens de l’ajouter dans celui-ci).

1 « J'aime »

Ça semble bien. Je suppose que nous devrons évoluer avec notre temps. :person_shrugging:

Oui. Ce n’est vraiment pas si difficile. Tu peux le faire, @pfaffman !

@falco :

2 « J'aime »

Bonjour, quelqu’un a-t-il réussi à faire fonctionner Contabo Object Storage pour les téléchargements compatibles S3. Il semble que lors du téléchargement, le nom du dépôt soit préfixé dans l’URL.

Par exemple, si vous avez un bucket appelé community, il crée une URL comme https://community.eu2.contabostorage.com.

J’ai trouvé ce comportement dans Duplicati, par exemple, mais il est possible d’exclure le préfixe du nom du bucket dans le domaine.

J’apprécierais si quelqu’un a la solution pour pouvoir utiliser ce stockage d’objets car il a de très bons prix.

J’ai effectué plusieurs tests pour configurer le domaine en tant que CNAME dans mon domaine à partir de Cloudflare pour fournir le SSL, mais pour community.cdn.midominio.com, le certificat SSL n’est plus couvert car ils utilisent un wildcard et si je désactive le proxy de Cloudflare, il se plaint car le certificat n’est pas correct.

Salutations,

1 « J'aime »

Avez-vous essayé de définir le paramètre S3 CDN sur https://community.eu2.contabostorage.com ? Je pense que cela fonctionnera.

N’existe pas, c’est le point de terminaison de contabo eu2.contabostorage.com

1 « J'aime »

Oui, mais quelle sera l’URL finale d’un fichier exemple dans un bucket ?

2 « J'aime »

![](upload://u6BBQfNFGrA4yuaLeqABnVkt87U.png)

Il veut dire que si vous téléchargez vous-même un fichier dans le bucket (en utilisant l’outil de votre choix pour télécharger un fichier), quelle URL utiliseriez-vous pour accéder au fichier ?

2 « J'aime »

https://eu2.contabostorage.com/9198f3bf2d6e43dd86fab037ebad3aee:comunidad/castopod-1.png

La structure est :

Hôte : https://eu2.contabostorage.com/
Utilisateur : 9198f3bf2d6e43dd86fab037ebad3aee
Bucket : comunidad
Fichier : castopod-1.png

2 « J'aime »

Ce n’est pas une URL fonctionnelle. Mais je suppose que ça pourrait l’être si vous remplacez ce deux-points par une barre oblique ?

Ce n’est pas la façon dont vous l’avez décrit dans votre premier message, alors peut-être qu’il peut maintenant faire une autre suggestion.

1 « J'aime »

Alors essayez de définir

  DISCOURSE_S3_CDN_URL: "https://eu2.contabostorage.com/9198f3bf2d6e43dd86fab037ebad3aee:comunidad"

et de reconstruire.

2 « J'aime »

Le R2 de Cloudflare est enfin disponible publiquement (il a fallu un an, apparemment). (Voici l’annonce originale : Announcing Cloudflare R2 Storage: Rapid and Reliable Object Storage, minus the egress fees)

J’ai créé un bucket.

J’ai créé un jeton qui inclut : « Modifier : Autoriser l’accès en modification de tous les objets et les opérations de liste, d’écriture et de suppression de tous les buckets »

Voici ce que j’ai essayé :

  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: auto
  DISCOURSE_S3_ACCESS_KEY_ID: redacted
  DISCOURSE_S3_SECRET_ACCESS_KEY: redacted
  DISCOURSE_S3_CDN_URL: https://pub-72eaa03782c542edbe00598fd1666be1.r2.dev
  DISCOURSE_S3_BUCKET: lc-testing
  DISCOURSE_S3_BACKUP_BUCKET: lc-testing/backups
  DISCOURSE_BACKUP_LOCATION: s3
  DISCOURSE_S3_ENDPOINT: https://cb46accbfcc3db1bdbba2bce07f8b509.r2.cloudflarestorage.com
  DISCOURSE_S3_INSTALL_CORS_RULE: false
  DISCOURSE_S3_CONFIGURE_TOMBSTONE_POLICY: false
  FORCE_S3_UPLOADS: 1

Mais le téléchargement des actifs échoue avec ceci :

Aws::S3::Errors::NotImplemented: Header 'x-amz-acl' with value 'public-read' not implemented

Et puis je me suis souvenu de rendre le bucket public comme décrit sur Public buckets · Cloudflare R2 docs

Mais cela n’a toujours pas fonctionné.

S3 API compatibility · Cloudflare R2 docs montre que x-amz-acl n’est pas implémenté.

En parcourant le code de Discourse, il ne m’est pas évident qu’il soit possible de faire fonctionner R2 sans modifications du cœur.

Après avoir désactivé les téléchargements, les sauvegardes fonctionnent, donc R2 semble être un moyen très peu coûteux d’avoir des sauvegardes S3. Mais comme j’avais rendu ce bucket public, la sauvegarde était également publique (si vous pouvez deviner le nom du fichier), donc si cela est résolu, vous voudrez des buckets séparés pour les sauvegardes et les téléchargements.

J’ai supprimé cette ligne et j’ai pu constater qu’un fichier avait été téléchargé, et j’ai pu y accéder en utilisant un domaine personnalisé comme s3_cdn_url. (Et une modification similaire de la tâche rake s3 permet le téléchargement des actifs.)

5 « J'aime »

Je suppose donc que nous l’ajouterons comme non compatible dans le fil de discussion jusqu’à ce qu’ils implémentent les ACL au niveau de l’objet. Merci de l’avoir essayé !

2 « J'aime »

Ouais. Les changements requis dans le cœur pour lui permettre d’ignorer la définition de l’ACL semblent assez compliqués. On pourrait dire que c’est acceptable uniquement pour les sauvegardes. Si vous ne faites pas d’acrobaties pour rendre le bucket public, cela devrait aller.

1 « J'aime »

Le problème est le point de terminaison s3

1 « J'aime »

Je viens de tester R2, mais il semble qu’ils ne respectent pas notre information « Content-Encoding », même si leur documentation dit qu’ils le feront. Peut-être que dans un an, ce sera utilisable.

3 « J'aime »

Ce texte nécessite l’ajout d’un avertissement dans les sections MinIO ou générales. Nous devons y inclure une note indiquant que « Discourse utilise le mode DNS pour les chemins sur les systèmes de stockage compatibles S3. Si le backend ne prend en charge que le mode chemin et non le mode DNS pour les chemins de compartiment, il n’est pas compatible avec Discourse. » C’est pourquoi MinIO n’était initialement pas sur la liste et a été ajouté plus tard.

J’ai également besoin que la section Serveur de stockage MinIO soit mise à jour - j’ai besoin que la réserve n° 2 indique ce qui suit :

  1. Vous avez activé la prise en charge du domaine dans la configuration MinIO pour les chemins de compartiment pilotés par domaine. Ceci est obligatoire car Discourse ne prend pas en charge les chemins de compartiment pilotés par chemin non basés sur le domaine avec les mécanismes de stockage S3.

EDIT : Il semble qu’avec ce message, j’ai obtenu le statut de membre (niveau de confiance 2), j’ai donc pu modifier le message wiki maintenant. Aucune action n’est nécessaire de la part des modérateurs, même si je leur ai demandé de faire les modifications.

4 « J'aime »

Génial ! Merci de votre aide pour maintenir les choses à jour. Cela ressemble au genre d’avertissement que je serais heureux d’avoir.

:clinking_glasses: :palms_up_together:

2 « J'aime »