¿Cómo subir archivos directamente a S3 sin usar el almacenamiento local? [cerrado]

18

Estoy buscando un complemento de WordPress que me permita subir archivos directamente a

Somos una tienda de desarrollo que co-crea activamente sitios web de CMS con clientes. Esto significa que a menudo estamos iterando sitios en los que los clientes están usando y cargando archivos. En nuestros proyectos, almacenamos la base de datos y el código en un repositorio git que facilita mover el código de la producción al desarrollo local.

El problema con este proceso es que algunos de los archivos que cargan los clientes son muy grandes y no queremos cargarlos en el repositorio, pero aún nos gustaría poder acceder a ellos como si los tuviéramos.

Entonces, pensé, en lugar de mover los archivos, podríamos usar un tercero que alojaría los archivos y simplemente accederíamos a ellos. Podría usar Amazon S3 con un complemento de copia de seguridad, pero preferiría subirlo a S3 a través de la interfaz de administración.

La segunda razón para querer este complemento es que alojamos blogs que tienen 20-30 GB de imágenes de alta resolución. Preferiría no mantener estos archivos en nuestro servidor porque el espacio del servidor es costoso. Es menos costoso usar Amazon S3 para alojar los archivos.

En conclusión, ¿hay un complemento que permita usar la carga de WordPress Media, pero en realidad omitirá el almacenamiento local y cargará los archivos directamente en el servidor?

Gracias de antemano por sus respuestas!

tarasmo
fuente
1
¿Te gusta este wordpress.org/extend/plugins/tantan-s3 ?
v0idless el
2
En lugar de una respuesta completa, que no puedo dejar en este momento: Guardar WordPress Media en Amazon S3 (Teaser)
Annika Backstrom
@ v0idless, parece que su enlace hará el trabajo. Tendré que probarlo.
tarasmo el
@ AdamBackstrom, el enlace parece que es exactamente el mismo escenario que yo, pero no estoy seguro de su solución. Tendré que echarle un vistazo más de cerca.
tarasmo el
¿Por qué no dejas respuestas?
tarasmo el

Respuestas:

5

Tenía este mismo requisito: mi VPS carecía de espacio en disco, pero aún quería administrar fotos con WordPress. tantan-s3 no fue suficiente, ya que una copia de cada foto se almacena localmente.

Es posible abstraer el almacenamiento de archivos usando envoltorios de flujo PHP, pero un par de piezas principales de WordPress son incompatibles. Entonces esa es la respuesta corta: WordPress de forma nativa no admite suficiente funcionalidad para que esto sea posible.


Continuando: El ticket de WordPress # 18543 se refiere al núcleo de parches para admitir envoltorios de flujo en imagejpeg()(y otras funciones de GD) y wp_mkdir_p().

Zend_Service_Amazon_S3_Stream proporciona un contenedor de flujo S3, pero tiende a ser ineficiente, solicitando los 8192 bytes predeterminados a la vez en lugar de almacenar más, generando una gran cantidad de solicitudes en el proceso. He estado sentado en esto durante meses, por lo que podría lanzar las modificaciones a la naturaleza . Este parche funciona contra Zend Framework 1.11.10.

Completar el círculo es un complemento para traducir la ruta de carga a S3 .

Me encantaría ver a alguien llevar esto más lejos que yo, pero no llegará muy lejos hasta que el núcleo de WordPress mejore el soporte de transmisión.

Annika Backstrom
fuente
1
Si tiene un VPS, ¿por qué no simplemente montar un bucket s3 y establecer esa ruta como el directorio de carga?
v0idless
@ v0idless, esa es una gran pregunta. No sería portátil, pero creo que funcionaría. Montar el cubo aún requeriría el complemento de traducción de URL de Adam. ¿Estoy en lo correcto?
tarasmo el
Las opciones de medios de WordPress le permiten configurar el directorio de carga: Store uploads in this folderque debería ser suficiente para un depósito montado. Creo que el complemento de Adam agrega el protocolo s3: // a la ruta de carga para soporte de transmisión.
v0idless el
@tarasm Creo que pre_option_upload_url_pathes el filtro importante para la ruta de descarga.
Annika Backstrom el
@ AdamBackstrom Creo que está tan cerca de la respuesta final como lo va a llegar en este momento. ¿Sería tan amable de actualizar esta pregunta si esta situación cambia?
tarasmo el
2

Echa un vistazo al plugin WP2Cloud . Los archivos cargados no se almacenan localmente: van directamente a Amazon S3.

Más adelante, si lo desea, puede usar Amazon S3 para almacenar todo el contenido del sitio web, no solo las cargas. Al hacerlo, resuelve permanentemente el problema de la copia de seguridad y obtiene la flexibilidad de alojar el sitio web en cualquier lugar que desee sin mover los datos.

artem
fuente
2

Había un complemento llamado WP de solo lectura . Que cargará los archivos a Amazon S3. Lo estoy usando en mi servidor heroku. Porque no puedes almacenar archivos estáticos en el servidor heroku.

palPalani
fuente
0

Hay un complemento que puede servir para este propósito, le permite cargar archivos directamente a S3 desde su panel de administración, o usar código corto para incrustar un navegador S3 en las portadas para que los usuarios carguen archivos a S3, puede controlar quién puede cargar, eliminar, crear carpetas, etc. es muy útil.

Aquí está el enlace: WordPress S3 Browser

user44870
fuente