Laravel s3 cubos múltiples

2 minutos de lectura

Mi aplicación Laravel necesita manipular archivos presentes en varios cubos simultáneamente en una sola sesión. Entonces, no pude encontrar una manera de cambiar varias veces el cubo actual, ya que mi .env el archivo es asi:

S3_KEY='MY-KEY'
S3_SECRET='MySeCret'
S3_REGION='us-east-1'
S3_BUCKET='my-first-used-bucket'

Encontré un lugar donde podía hacer esto:

Config::set('filesystems.disks.s3.bucket', 'another-bucket');

pero funciona solo una vez. Lo que necesito es algo como:

Storage::disk('s3')->put('/bucket-name/path/filename.jpg', $file, 'public');

Dónde /bucket-name/ podría ser cualquier depósito que ya haya creado. ¿Qué puedo hacer? ¡Muchas gracias!

  • ¿A qué te refieres con que solo funciona una vez? Config::set('foo', 'bar'); Config::set('foo', 'baz'); echo Config::get('foo'); // baz trabajará…

    – Ben Swinburne

    5 de febrero de 2016 a las 14:54

  • @BenSwinburne Funciona como una primera configuración. Entonces, si configuro un depósito usando Config::set, funciona, los archivos se almacenarán en la ubicación correcta, pero si trato de cambiar el depósito más tarde, usando el mismo método, el depósito actual sigue siendo el mismo y los archivos se almacenará en el primer cubo.

    –Leandro Ferreira

    5 de febrero de 2016 a las 15:27

  • la forma más elegante de manejar varios cubos s3. Gracias

    -Michael Nguyen

    8 dic 2018 a las 19:27

  • ¿Qué pasa si el cubo es el único que es diferente pero todo tiene la misma clave, secreto y región? ¿No es este un código redundante?

    – PinoyStackOverflower

    25 de noviembre de 2020 a las 6:38

  • Hay muchas buenas razones para tener código redundante, especialmente cuando las líneas repetidas están cerca unas de otras para que otros desarrolladores puedan notar la duplicación. Esta cantidad de redundancia no debería activar ninguna alarma.

    – dankuck

    17 mayo 2021 a las 21:34

  • Entonces, ¿podría usar esto como una especie de separador para diferentes ‘clientes’ o ‘clientes’? ¿No se almacenaría el duplicado o almacenaría duplicados? ¿Cómo compararía un ‘depósito’ s3 existente?

    – Levi

    24 de noviembre de 2020 a las 9:47

¿Ha sido útil esta solución?