J’ai reçu un avertissement dans ma ligne de commande concernant l’espace disque avant de reconstruire mon conteneur lors de l’installation d’un plugin Discourse. J’ai dû exécuter quelques commandes pour supprimer d’anciennes versions de Linux sur mon droplet DigitalOcean, mais je dépends toujours plus de 50 % de la capacité de mon SSD.
À mesure que mon site web Discourse a grandi, j’ai commencé à examiner les solutions de stockage. Je suis actuellement sur un droplet DigitalOcean à 5 $ et j’ai lu des informations sur le stockage par blocs de DigitalOcean et Amazon S3. Je vois que les paramètres S3 sont intégrés aux paramètres de Discourse, donc je suppose que c’est plus facile à configurer.
Que utilisez-vous pour votre site web ? Quelle option offre des vitesses de chargement supérieures, S3 ou les blocs DigitalOcean ? Quelle option est moins chère ? Le niveau gratuit de S3 ne le rendrait-il pas moins cher que les blocs DigitalOcean ? Stockez-vous vos images ET vos sauvegardes ? Ou recommandez-vous une autre option en dehors de DigitalOcean et Amazon ?
De nombreux fournisseurs proposent des solutions de stockage compatibles S3. Vous pouvez utiliser l’un ou l’autre. J’en ai utilisé plusieurs et je peux recommander Digital Ocean Spaces, qui fonctionne très bien.
Si vous hébergez déjà sur DO, je vous recommande d’utiliser Spaces, car c’est rapide et fiable.
Cependant, il existe certaines préoccupations concernant leur CDN, vous devrez donc peut-être envisager un CDN tiers.
Le niveau gratuit de Cloudflare fonctionnerait-il comme CDN devant le bucket ? Je l’utilise déjà avec les paramètres de mon domaine pour la protection gratuite contre les attaques DDoS.
J’ai remarqué que DigitalOcean annonce que son service Spaces est moins cher que ceux des autres fournisseurs bien connus. C’est donc un avantage certain.
Comme le CDN fourni avec DigitalOcean Spaces ne fonctionne pas correctement avec Discourse, je pense que je vais opter pour l’un des autres fournisseurs de votre liste. Ainsi, je n’aurai pas à payer pour DigitalOcean Spaces et un service CDN séparé.
L’absence de content-encoding dans l’implémentation du CDN de DO est certainement décevante, mais cela ne se produit que lorsque l’on définit tous les paramètres S3 dans app.yml. Si ces paramètres sont définis dans les paramètres du site via la console d’administration web, DO ne sert les uploads S3 que via le CDN, tandis que les assets du site sont toujours servis depuis la source.
Il semble que cela soit intentionnel, car la variable d’environnement DISCOURSE_S3_CDN_URL, si elle est définie dans app.yml, remplace également le paramètre CDN pour les assets, alors que ce même paramètre, lorsqu’il est déclaré uniquement dans les paramètres du site, ne le fait pas ?
C’est un peu incohérent, mais cela permet d’utiliser le CDN de DO uniquement pour les uploads S3, sans casser le site :
Il existe deux façons de faire cela :
déclarer tous les paramètres S3 uniquement dans les paramètres du site
rails c
SiteSetting.s3_upload_bucket="<bucket_name>/<uploads_folder>"
SiteSetting.s3_backup_bucket="<bucket_name>/<backups_folder>"
SiteSetting.enable_s3_uploads=true
SiteSetting.s3_access_key_id="<key>"
SiteSetting.s3_secret_access_key="<secret_key>"
SiteSetting.s3_endpoint="https://<sfo2>.digitaloceanspaces.com"
SiteSetting.s3_cdn_url="https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>"
SiteSetting.backup_location="s3"
dupliquer tous les paramètres S3 saufDISCOURSE_S3_CDN_URL dans app.yml, et déclarer le CDN de DO dans SiteSetting.s3_cdn_url
Tous les autres fournisseurs, même AWS, exigent un CDN. Le fait que DO propose un CDN gratuit, mais défectueux, est simplement une bizarrerie que nous pouvons ignorer et traiter comme un service de stockage d’objets standard.
Je ne suis pas sûr que le détail d’implémentation consistant à définir S3 CDN URL dans le fichier yml et dans les paramètres du site, ce qui entraîne des comportements différents, soit quelque chose que nous souhaitons promouvoir, car cela peut être corrigé à tout moment.
Je ne l’ai pas testé, mais je peux garantir que cela fonctionne avec de vrais services CDN, comme KeyCDN, Cloudfront, StackPath, etc.