Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

En Laravel, los archivos guardados en el disk local viven en el filesystem de la máquina que ejecuta la aplicación; si esa instancia se reemplaza y la ruta no está en un volumen persistente, pueden desaparecer. Ni la carpeta storage ni php artisan storage:link garantizan que los datos duren. Para conservar archivos importantes, usa almacenamiento remoto compatible con S3 o un volumen que tu plataforma garantice como persistente; trata la base de datos por separado.

Qué significa «persistir» en un despliegue efímero

Una instancia efímera puede reiniciarse, reemplazarse durante un despliegue o escalarse hacia arriba y abajo. El código de Laravel puede seguir disponible después de esos cambios mientras que los archivos escritos en el disco local de una instancia no lo estén. La garantía depende de dónde apunta la aplicación y de qué conserva la plataforma, no solo del nombre de una carpeta.

Laravel configura los discos en config/filesystems.php. El disk local opera en el filesystem del servidor de aplicación. La documentación de Laravel 13.x sitúa su raíz predeterminada en storage/app/private, pero que esa ruta exista no significa que sea duradera: eso depende de si la plataforma la monta en almacenamiento persistente. Documentación de Laravel sobre filesystem.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Por qué storage:link no conserva archivos

El disk public está pensado para archivos que la aplicación permite exponer públicamente y suele configurarse como almacenamiento local. El comando php artisan storage:link crea el enlace public/storage hacia storage/app/public, para que el servidor web pueda servir esos archivos. El enlace cambia la ruta de acceso, no el lugar donde se almacenan los datos ni el ciclo de vida de ese lugar. Si el destino es efímero, los archivos siguen expuestos a su pérdida cuando la instancia se reemplaza. La documentación de Laravel describe el disk público y el enlace simbólico.

Dónde pueden estar los datos de Laravel

No asumas que todo el estado de una aplicación está en storage. Revisa cada flujo de escritura y clasifica los datos según si pueden regenerarse, cuánto deben conservarse y si deben estar disponibles para varias instancias.

Tipo de dato Ubicación posible Qué comprobar
Uploads, imágenes, adjuntos y exportaciones Disk local, volumen montado o almacenamiento remoto Qué disk usa cada flujo; si sobrevive al reemplazo y si workers y réplicas pueden leerlo.
Base de datos Servicio externo o, con SQLite, un archivo configurado mediante DB_DATABASE Ubicación efectiva, persistencia, backups y restauración. La configuración y la conexión se documentan en la documentación de bases de datos de Laravel.
Caché Filesystem, base de datos, Redis, Memcached, DynamoDB u otro backend configurado Backend en config/cache.php y si los datos son regenerables. Laravel también permite usar un disk de filesystem para la caché. Documentación de caché.
Sesiones, locks, logs y temporales Depende de la configuración y del mecanismo de cada componente Si requieren continuidad, acceso compartido, recolección, transporte o retención.

Cómo elegir dónde guardar archivos importantes

Almacenamiento remoto compatible con S3

Laravel incluye un disk S3 y admite servicios compatibles con S3 mediante la configuración de credenciales y, cuando corresponda, un endpoint. El código puede seguir usando la API de Storage aunque cambie el disk configurado. Esta opción suele encajar con uploads que deben estar disponibles desde varias instancias, aunque debes verificar las condiciones concretas del servicio elegido. Configuración de filesystem y configuración del driver S3.

Antes de adoptarlo, confirma región y residencia de datos, permisos públicos o privados, URLs temporales, rotación de credenciales, límites, costos, políticas de ciclo de vida y procedimientos de backup y restauración. Laravel ofrece temporaryUrl para disks local y S3; la documentación también describe la carga directa del cliente al almacenamiento cloud como un uso especialmente útil en serverless. URLs temporales en Laravel.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Volumen persistente

Un disk local puede ser apropiado si la plataforma monta explícitamente un volumen duradero en la ruta utilizada. Comprueba si el volumen sobrevive a reinicios, redeploys y reemplazos; si es compartido entre instancias o existe uno por instancia; y qué backups y restauración ofrece el proveedor. Un volumen que solo pertenece a una réplica no resuelve por sí solo el acceso desde workers o instancias distintas.

La base de datos también puede ser efímera

SQLite guarda la base de datos en un archivo y Laravel permite indicar su ubicación mediante DB_DATABASE. Si ese archivo reside en el filesystem temporal de la instancia, puede correr el mismo riesgo que un upload local. Verifica también que el almacenamiento y los mecanismos de journal usados por la base tengan la persistencia adecuada. Configuración de SQLite en Laravel.

En despliegues con varias instancias, no des por hecho que un archivo local será compartido o duradero. Una base de datos gestionada o externa puede ser más adecuada, pero la decisión depende de los requisitos de concurrencia, compatibilidad y plataforma del proyecto.

Audita la aplicación antes de cambiar la configuración

  1. Localiza las escrituras. Busca usos de Storage::put, store, storePublicly, UploadedFile, file_put_contents, fopen, rutas con storage_path(), escrituras directas en public/ y generación de exportaciones.
  2. Identifica el disk real. Revisa config/filesystems.php, FILESYSTEM_DISK y cualquier disk específico que use cada flujo. Determina si es local, remoto o apunta a un volumen montado.
  3. Comprueba la base de datos efectiva. Revisa config/database.php, DB_CONNECTION y DB_DATABASE. Si usas SQLite, confirma ruta, montaje y backups; si usas una base externa, valida que producción apunte a ella.
  4. Revisa el estado operativo. Inspecciona config/cache.php, sesiones, colas y locks. Decide cuáles pueden perderse y cuáles necesitan continuidad o acceso desde varias instancias; no guardes datos de negocio únicamente en caché.
  5. Verifica las garantías del proveedor. Consulta qué sobrevive a reinicio, redeploy, escalado y reemplazo, y qué alcance tienen los volúmenes y las copias de seguridad.
  6. Haz una prueba controlada. Carga un archivo marcador y comprueba que se puede leer después de un reemplazo según el procedimiento documentado por tu plataforma. Verifica por separado la ubicación y restauración de la base de datos.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Cómo decidir entre almacenamiento local y remoto

Compara las opciones según la persistencia ante reemplazos, el acceso desde workers y réplicas, la compatibilidad con la API actual de Laravel, los controles de acceso y las URLs, la restauración, la latencia y los costos, los límites de tamaño y operaciones, y la dependencia del proveedor. Un disk local sobre volumen persistente puede servir para una instancia o un despliegue que comparta explícitamente ese almacenamiento; el almacenamiento de objetos suele ajustarse mejor a uploads compartidos. Son criterios de arquitectura, no garantías para una plataforma específica.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

La documentación del framework describe drivers y rutas, pero no determina si el hosting conserva una ruta local. Por ejemplo, la página de Laravel Vapor describe una plataforma serverless basada en AWS que separa ejecución, bases de datos y cargas a S3; la misma página indica que ya no acepta nuevas altas. Esa condición es específica de Vapor y no debe generalizarse a otros servicios. Información oficial de Laravel Vapor.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.