Richiesta sul supporto di Discourse per l'archiviazione Amazon S3

Vorrei chiedere informazioni su un problema tecnico relativo al supporto di Discourse per l’archiviazione Amazon S3.

Ho trovato un post sul forum risalente al 2013 che discuteva già del supporto S3 di Discourse. Ho anche trovato alcuni thread relativi al trasferimento del carico CDN, ma non sembra esserci molta informazione dettagliata su questo argomento.

Ho creato un forum Discourse da solo e sono stato molto determinato nell’abilitare i caricamenti video. Ho avuto molte idee, ma non essendo un programmatore, è stato difficile metterle in pratica: ho sempre bisogno dell’aiuto di altri per fare progressi un passo alla volta.

Discourse stesso supporta piccoli caricamenti video e ho già abilitato quella funzione. Tuttavia, l’architettura di Discourse non è realmente adatta a gestire in modo efficiente i caricamenti video. Dopo molte ricerche, ho scoperto che è effettivamente possibile utilizzare l’archiviazione Amazon S3 insieme al trasferimento del carico CDN, o in alternativa, l’archiviazione S3 con una configurazione di cache proxy.

Infatti, ho già chiesto a un amico di aiutarmi a configurare l’archiviazione S3 e la cache proxy. (Per chiarezza, non ho considerato l’uso di una CDN a causa di preoccupazioni sui costi: il servizio CDN di Amazon S3 può essere piuttosto costoso.)

Ora sto affrontando un problema: durante il test, anche se l’archiviazione S3 è stata configurata correttamente e teoricamente tutti i caricamenti dal forum dovrebbero andare direttamente su S3, i file video non possono ancora essere caricati nell’archiviazione S3.

Qualcuno potrebbe spiegare cosa potrebbe essere configurato in modo errato o cosa potrebbe causare questo problema?

grazie

Cosa succede invece? Ricevi un messaggio di errore?

Potresti anche voler controllare le impostazioni “max attachment size kb” e “authorized extensions”, entrambe in Site Settings - Files.

Tieni presente che anche con CDN e S3, questa configurazione non è ancora molto adatta per i video, poiché non vi è alcuna transcodifica per offrire la migliore corrispondenza per la larghezza di banda e la risoluzione del client.

3 Mi Piace


Grazie mille per la tua risposta. Ecco la situazione:
Al momento, le immagini del mio forum vengono caricate con successo su S3, ma i video no. Mi confonde molto.

Anche se capisco che S3 potrebbe non essere ancora ideale per la gestione dei video, il contenuto principale del forum è testo e immagini. La funzionalità video serve solo a soddisfare le esigenze di alcuni utenti e i video stessi non saranno molto grandi. Grazie mille per il promemoria.

Hai dimenticato di rispondere alla mia domanda :slight_smile:

3 Mi Piace

La CDN di Amazon è più economica dell’uscita dai bucket S3. Vuoi assolutamente una CDN davanti al tuo bucket S3.

Sospetto che l’errore di cui non ci hai parlato riguardi video troppo grandi. Ci sono impostazioni per cambiarlo, ma potrebbe essere meglio abilitare Abilita caricamenti diretti su S3.

3 Mi Piace


Quando tento caricare un video sul mio forum, ora viene visualizzato direttamente il messaggio:

“Spiacenti, il file è troppo grande (dimensione massima 50 MB). Perché non caricare il tuo file di grandi dimensioni su un servizio di condivisione cloud, quindi incollare il link?”

Tuttavia, il mio video è di soli 10 MB. Attualmente, sto utilizzando l’archiviazione S3 con CloudFront CDN per la distribuzione.

Trovo la risoluzione dei problemi molto difficile. Potresti fornire la procedura corretta presupponendo che non siano state eseguite operazioni precedenti? Chiederò al mio amico di seguire i passaggi corretti e riprovare.

Ciao, grazie per la tua risposta.

Ho già chiesto al mio amico di passare dal metodo di archiviazione S+ con caching proxy al metodo di archiviazione S3 + consegna CDN CloudFront. Tuttavia, sembra che non ci sia riuscito e non ne conosco ancora il motivo. Quindi mi stavo chiedendo se potessi fornire i comandi di esecuzione esatti in modo che il mio amico possa riprovare.

Inoltre, sono molto determinato ad avere funzionalità video sul mio forum per la comodità dei miei utenti. Quindi ho avuto una nuova idea e vorrei sapere se è fattibile: spero davvero di avere la tua opinione.

Innanzitutto, devo spiegare che non ho assolutamente alcuna conoscenza di codifica o programmazione. La mia specializzazione universitaria era il giapponese, quindi a parte l’apprendimento della lingua giapponese, non ho veramente alcuna comprensione del codice. Se alcune delle mie idee sembrano ingenue a prima vista, perdonami.

Grazie al server che ho affittato per il mio forum che ha smesso di funzionare, ho dovuto investire sforzi per ricostruirlo, il che mi ha permesso di imparare i punti chiave dell’archiviazione S3 e della CDN CloudFront. Quindi, ho applicato questa conoscenza e mi sono chiesto se ci fossero altri fornitori di servizi di archiviazione e CDN. Ho consultato ChatGPT e sono stato felice di ottenere le risposte che desideravo.

In realtà, avevo sempre desiderato costruire un sito web di video, ma ho rinunciato rapidamente a causa dei costi dell’hard disk. Ora che conosco la nuova soluzione, ho riacceso l’idea di costruire un sito web di video per supportare i video del forum Discourse.

Sulla base della raccomandazione di GPT, ho appreso che posso utilizzare PeerTube o MediaCMS per il sistema del sito web di video: entrambi sono eccellenti.

Ho attualmente due punti di dubbio:

Primo punto: Entrambi i sistemi di siti web video possono supportare l’archiviazione Backblaze B2 con consegna CDN Cloudflare. Poiché i video non sono archiviati sul mio hard disk, la riproduzione del sito web video chiama già l’API Backblaze B2. Quello che voglio è che il forum sia collegato al sito web video, non pubblicando link, ma utilizzando il pulsante di caricamento del forum per chiamare direttamente il mio sito web video MediaCMS (ad esempio) come sorgente. Ciò implicherebbe due chiamate API:

  1. Il forum chiama il sito web video MediaCMS.
  2. Il sito web video MediaCMS chiama l’archiviazione Backblaze B2.

Vorrei sapere se chiamate API ripetute come queste sono tecnicamente fattibili.

Secondo punto: Se il sistema del forum e il sistema del sito web video possono condividere il sistema di account utente, in modo che gli utenti possano utilizzare lo stesso account. Ciò influisce sul funzionamento delle chiamate API.

  • Opzione 1: In qualità di amministratore del sito web video, registro un account amministratore collegato al forum. Quando il forum carica un video tramite API, è tecnicamente l’amministratore che lo carica sul sito web MediaCMS.
  • Opzione 2: Con un sistema di account utente condiviso, il caricamento del video viene eseguito dall’account forum dell’utente stesso e tramite API viene sincronizzato sul sito web MediaCMS. Quindi l’utente può vedere il video caricato sotto il proprio account sul sito web video.

Ho consultato GPT riguardo a questi approcci e GPT ha generalmente dato un feedback positivo. Tuttavia, sfortunatamente, in un uso ripetuto, ho scoperto che GPT può fornire indicazioni e aiuto per decisioni di alto livello, ma per risposte dettagliate, a volte può essere impreciso. Poiché non ho alcuna conoscenza di codifica, non sono sicuro se queste idee siano davvero fattibili.

Se possibile, ti sarei molto grato se potessi indicare quali parti di queste idee sono fattibili e quali potrebbero non esserlo.

Probabilmente dovrebbero partecipare a questo argomento. Hanno seguito Configura un provider di archiviazione oggetti compatibile con S3 per i caricamenti e inserito le impostazioni nel file ymll e aggiunto la parte che invia gli asset a S3?

Forse il browser in qualche modo non comunica la dimensione in modo appropriato.

Hai provato questo?


Ciao. In realtà, ecco la situazione:
I video inferiori a 10 MB possono essere caricati sul mio server, ma i file video stessi non possono essere caricati su S3.
Durante il caricamento di un video, il sistema acquisisce automaticamente il primo fotogramma come miniatura e l’immagine della miniatura può essere caricata su S3.

Tuttavia, per i video più grandi di 10 MB, non è possibile caricare nulla.

Se il tuo amico avesse seguito Configura un provider di archiviazione di oggetti compatibile con S3 per i caricamenti non vedresti enable_s3_uploads. Non è chiaro se l’impostazione di questi nel database anziché nell’ENV faccia parte del problema.

Questo non è lo stesso di Abilita caricamenti diretti S3. Questo è “Abilita caricamenti diretti S3”

Devi anche cambiare Dimensione massima immagine KB e Dimensione massima allegato KB

Ma ho cambiato il mio caricamento massimo a 100 MB e ho provato a caricare un file da 37 MB e ho ricevuto l’errore “file troppo grande”, quindi potresti avere ragione sul fatto che c’è un bug. Non ho aggiornato il sito dove ho testato per un po’.

1 Mi Piace

L’hai cambiato anche in app.yml?

Grazie mille per tutto il tuo aiuto.
Ha detto di aver seguito le istruzioni in Configure an S3 compatible object storage provider for uploads, ma non ha funzionato.
Tuttavia, proprio ora, dopo aver fatto la stessa cosa che hai suggerito e aver cambiato la dimensione massima del file caricato in 100 MB, il video è stato caricato con successo nello storage S3.
Grazie mille!

Allora lo ha fatto nel modo sbagliato e avrebbe dovuto chiedere aiuto. Probabilmente ha omesso la parte che carica gli asset su S3.

Ottimo! C’è un argomento da qualche parte su come aumentare anche quel limite di 100 MB.

1 Mi Piace