Configura un fornitore di storage di oggetti compatibile con S3 per gli upload

Ciao @mcwumbly. Era molto facile da trovare quando potevo cercare “clonazione S3”. Non sono riuscito a trovarlo ora. C’era qualcosa che non andava in quel titolo? Esiste una ricerca che lo troverà? Potremmo aggiungere una (non ricordo come si chiama) cosa in modo che possa collegarsi automaticamente ad alcune parole come fa l’installazione standard (ma non riesco a pensare a quali parole usare).

3 Mi Piace

Come qualcuno che collega questi argomenti più volte alla settimana, sono un po’ d’accordo :stuck_out_tongue:

Forse aggiungere “cloni s3” al corpo dell’OP aiuta la ricerca?

2 Mi Piace

Ho trovato “compatibile con S3” più comune, motivo per cui l’ho cambiato durante una revisione generale degli aggiornamenti dei titoli della documentazione, ad esempio: AWS S3 Compatible Object Storage | MinIO

Penso che il suggerimento di inserire altri termini di ricerca nel corpo dell’OP abbia senso, comunque. (L’ho appena aggiunto in questo).

1 Mi Piace

Sembra a posto. Immagino che dovremo cambiare con i tempi. :person_shrugging:

Sì. Non è poi così difficile. Puoi farcela, @pfaffman!

@falco:

2 Mi Piace

Ciao, qualcuno è riuscito a far funzionare Contabo Object Storage per caricamenti compatibili con S3? Sembra che durante il caricamento anteponga il nome del repository nell’URL.

Ad esempio, se hai un bucket chiamato community, crea un URL come https://community.eu2.contabostorage.com

Ho riscontrato questo comportamento in Duplicati, ad esempio, ma si può escludere che anteponga il nome del bucket nel dominio.

Apprezzerei se qualcuno avesse la soluzione per poter utilizzare questo Object Storage perché ha prezzi molto buoni.

Ho fatto diversi test per configurare il dominio come CNAME nel mio dominio da cloudflare per fornire l’SSL, ma per community.cdn.midominio.com il certificato SSL non è più coperto perché utilizzano un wildcard e se disattivo il proxy di cloudflare si lamenta perché il certificato non è corretto.

Saluti,

1 Mi Piace

Hai provato a impostare l’impostazione CDN S3 su https://community.eu2.contabostorage.com? IMHO funzionerà.

Non esiste, è l’endpoint di contabo eu2.contabostorage.com

1 Mi Piace

Sì, ma quale sarà l’URL finale di un file di esempio in un bucket?

2 Mi Piace

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

Significa che se carichi tu stesso un file nel bucket (usando qualsiasi strumento tu possa usare per caricare un file), quale URL useresti per accedere al file?

2 Mi Piace

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

La struttura è
Host: https://eu2.contabostorage.com/
Utente: 9198f3bf2d6e43dd86fab037ebad3aee
Bucket: comunidad
File: castopod-1.png

2 Mi Piace

Non è un URL funzionante. Ma immagino che potrebbe esserlo se sostituissi quel due punti con una barra?

Non è il modo in cui l’hai descritto nel tuo primo post, quindi forse ora può fare un altro suggerimento.

1 Mi Piace

Quindi prova a impostare

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

e a ricompilare.

2 Mi Piace

Cloudflare R2 è finalmente disponibile pubblicamente (ci è voluto solo un anno, a quanto pare). (Ecco l’annuncio originale: Announcing Cloudflare R2 Storage: Rapid and Reliable Object Storage, minus the egress fees)

Ho creato un bucket.

Ho creato un token che include: “Modifica: Consenti l’accesso in modifica di tutti gli oggetti e le operazioni Elenca, Scrivi ed Elimina di tutti i bucket”

Ecco cosa ho provato:

  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

Ma il caricamento degli asset fallisce con questo:

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

E poi mi sono ricordato di rendere pubblico il bucket come descritto su Public buckets · Cloudflare R2 docs

Ma non ha ancora funzionato.

S3 API compatibility · Cloudflare R2 docs mostra che x-amz-acl non è implementato.

Dando un’occhiata al codice di Discourse, non mi è chiaro se sia possibile far funzionare R2 senza modifiche al core.

Dopo aver disabilitato i caricamenti, i backup funzionano, quindi R2 sembra essere un modo molto economico per avere backup S3. Ma dato che avevo reso pubblico quel bucket, anche il backup era pubblico (se riesci a indovinare il nome del file), quindi se questo verrà risolto, vorrai bucket separati per backup e caricamenti.

Ho rimosso questa riga e sono stato in grado di vedere che ha caricato un file, ed è stato in grado di accedervi utilizzando un dominio personalizzato come s3_cdn_url. (E una modifica simile al task rake s3 consente il caricamento degli asset.)

5 Mi Piace

Quindi immagino che lo aggiungeremo come non compatibile nell’OP finché non implementeranno l’ACL a livello di oggetto. Grazie per averlo provato!

2 Mi Piace

Sì. Le modifiche necessarie al core per consentirgli di saltare l’impostazione dell’ACL sembrano piuttosto complicate. Si potrebbe dire che va bene solo per i backup. Se non fai salti mortali per rendere il bucket pubblico, dovrebbe andare bene.

1 Mi Piace

Il problema è l’endpoint s3

1 Mi Piace

Ho appena testato R2, ma sembra che non rispettino le nostre informazioni “Content-Encoding”, anche se la loro documentazione dice che lo faranno. Forse tra un anno sarà utilizzabile.

3 Mi Piace

È necessario aggiungere un avviso alle sezioni MinIO o generali. Dobbiamo inserire un avviso che “Discourse utilizza la modalità DNS per i percorsi sui sistemi di archiviazione compatibili con S3. Se il backend supporta solo la modalità percorso e non la modalità DNS per i percorsi dei bucket, allora non è compatibile con Discourse”. Questo è il motivo per cui MinIO originariamente non era nell’elenco ed è stato aggiunto in seguito.

Ho anche bisogno che la sezione MinIO Storage Server venga aggiornata: ho bisogno che la clausola #2 dichiari quanto segue:

  1. Hai abilitato il supporto del dominio nella configurazione di MinIO per i percorsi dei bucket basati su dominio. Questo è obbligatorio poiché Discourse non supporta percorsi non basati su dominio con meccanismi di archiviazione S3.

EDIT: Sembra che con questo post abbia ottenuto lo stato di membro (livello di fiducia 2), quindi ora sono stato in grado di modificare il post del wiki. Non è necessaria alcuna azione da parte dei moderatori, anche se ho chiesto loro di apportare le modifiche.

4 Mi Piace

Fantastico! Grazie per il tuo aiuto nel mantenere le cose aggiornate. Quello sembra il tipo di avviso che sarei felice di ricevere.

:clinking_glasses: :palms_up_together:

2 Mi Piace