Come caricare file direttamente su S3 senza utilizzare lo storage locale?
Sto cercando un plugin per WordPress che mi permetta di caricare file direttamente su Amazon S3 senza passare dallo storage locale.
Siamo uno studio di sviluppo che crea attivamente siti CMS in collaborazione con i clienti. Questo significa che spesso lavoriamo su siti che i clienti stanno già utilizzando e a cui stanno caricando file. Nei nostri progetti, archiviamo il database e il codice in un repository git, il che rende facile spostare il codice dalla produzione allo sviluppo locale.
Il problema con questo processo è che alcuni file caricati dai clienti sono molto grandi e non vogliamo caricarli nel repository, ma vorremmo comunque poterli accedere come se li avessimo localmente.
Quindi ho pensato che, invece di spostare i file, potremmo usare un servizio di terze parti che ospiti i file e noi potremmo semplicemente accedervi. Potrei usare Amazon S3 con un plugin di backup, ma preferirei caricare direttamente su S3 attraverso l'interfaccia di amministrazione.
Il secondo motivo per cui desidero questo plugin è che ospitiamo blog con 20-30GB di immagini ad alta risoluzione. Preferirei non conservare questi file sul nostro server perché lo spazio sul server è costoso. È più economico usare Amazon S3 per ospitare i file.
In conclusione, esiste un plugin che permette di usare il caricamento dei Media di WordPress, ma che in realtà bypassi lo storage locale e carichi i file direttamente su S3?
Grazie in anticipo per le vostre risposte!

Ho avuto lo stesso requisito: il mio VPS aveva poco spazio su disco, ma volevo comunque gestire le foto con WordPress. tantan-s3 non era sufficiente, poiché una copia di ogni foto viene memorizzata localmente.
È possibile astrarre l'archiviazione dei file utilizzando i wrapper di stream PHP, ma alcuni componenti core di WordPress sono incompatibili. Quindi, in breve: WordPress nativamente non supporta abbastanza funzionalità per rendere questo possibile.
Proseguendo: il ticket WordPress #18543 riguarda la modifica del core per supportare i wrapper di stream in imagejpeg()
(e altre funzioni GD) e wp_mkdir_p()
.
Zend_Service_Amazon_S3_Stream fornisce un wrapper di stream per S3, ma tende a essere inefficiente, richiedendo per impostazione predefinita 8192 byte alla volta invece di bufferizzare di più, generando un enorme numero di richieste nel processo. Sono rimasto seduto su questo per mesi, quindi potrei anche rilasciare le modifiche in pubblico. Questa patch funziona con Zend Framework 1.11.10.
Per completare il cerchio, c'è un plugin per tradurre il percorso di upload in S3.
Mi piacerebbe vedere qualcuno portare questo oltre quanto ho fatto io, ma non andrà lontano finché il core di WordPress non migliorerà il supporto agli stream.

Se hai un VPS, perché non montare semplicemente un bucket S3 e impostare quel percorso come directory di upload?

@v0idless, ottima domanda. Non sarebbe portatile, ma penso che funzionerebbe. Montare il bucket richiederebbe comunque il plugin di traduzione URL di Adam. Ho ragione?

Le opzioni media di WordPress ti permettono di impostare la directory di upload: Store uploads in this folder
che dovrebbe essere sufficiente per un bucket montato. Penso che il plugin di Adam aggiunga il protocollo s3:// al percorso di upload per il supporto allo streaming.

@tarasm Credo che pre_option_upload_url_path
sia il filtro importante per il percorso di download.

Scopri il plugin WP2Cloud. I file caricati non vengono memorizzati localmente, ma vanno direttamente su Amazon S3.
Inoltre, se lo desideri, puoi utilizzare Amazon S3 per archiviare tutti i contenuti del sito web, non solo i caricamenti. In questo modo risolvi definitivamente il problema del backup e guadagni la flessibilità di ospitare il sito web dove vuoi senza dover spostare i dati.

C'era un plugin chiamato WP Read-Only. Che caricava i file su Amazon S3. Lo sto utilizzando sul mio server heroku. Perché non puoi memorizzare file statici sul server heroku.

Prova questo: http://wordpress.org/extend/plugins/tantan-s3/ ^^

Esiste un plugin che può servire a questo scopo, ti permette di caricare file direttamente su S3 dal pannello di amministrazione, oppure di utilizzare uno shortcode per incorporare un browser S3 nelle pagine frontend affinché gli utenti possano caricare file su S3. Puoi controllare chi può caricare, eliminare, creare cartelle, ecc. È molto utile.
Ecco il link: WordPress S3 Browser
