Información general

Introducción

Los motores de almacenamiento se utilizan para guardar archivos en servicios específicos, como el almacenamiento local (en el disco duro del servidor), el almacenamiento en la nube, entre otros.

Antes de subir cualquier archivo, es necesario configurar un motor de almacenamiento. Durante la instalación, el sistema añade automáticamente un motor de almacenamiento local que puede utilizar directamente. También puede añadir nuevos motores o editar los parámetros de los existentes.

Tipos de motores de almacenamiento

Actualmente, NocoBase ofrece soporte integrado para los siguientes tipos de motores de almacenamiento:

El sistema añade automáticamente un motor de almacenamiento local durante la instalación, el cual puede utilizar directamente. También tiene la opción de añadir nuevos motores o editar los parámetros de los ya existentes.

Parámetros comunes

Además de los parámetros específicos de cada tipo de motor, las siguientes secciones describen los parámetros comunes (tomando como ejemplo el almacenamiento local):

Ejemplo de configuración del motor de almacenamiento de archivos

Título

El nombre del motor de almacenamiento, utilizado para su identificación manual.

Nombre del sistema

El nombre del sistema del motor de almacenamiento, utilizado para su identificación por parte del sistema. Debe ser único dentro del sistema. Si lo deja en blanco, el sistema generará uno aleatoriamente de forma automática.

Prefijo de URL de acceso público

La parte del prefijo de la URL de acceso público para el archivo. Puede ser la URL base de un CDN, por ejemplo: "https://cdn.nocobase.com/app" (sin la barra final "/" ).

Ruta

La ruta relativa utilizada al almacenar archivos. Esta parte también se añadirá automáticamente a la URL final durante el acceso. Por ejemplo: "user/avatar" (sin barras al principio ni al final).

Límite de tamaño de archivo

El límite de tamaño para los archivos que se suben a este motor de almacenamiento. Los archivos que superen este tamaño no podrán subirse. El límite predeterminado del sistema es de 20 MB y se puede ajustar hasta un máximo de 1 GB.

Tipos de archivo

Puede restringir los tipos de archivos que se pueden subir, utilizando el formato de descripción de la sintaxis MIME. Por ejemplo: image/* representa archivos de imagen. Se pueden separar varios tipos con comas, como: image/*, application/pdf, lo que permite archivos de imagen y PDF.

Motor de almacenamiento predeterminado

Al marcar esta opción, se establece como el motor de almacenamiento predeterminado del sistema. Cuando un campo de adjunto o una colección de archivos no especifica un motor de almacenamiento, los archivos subidos se guardarán en el motor de almacenamiento predeterminado. El motor de almacenamiento predeterminado no se puede eliminar.

Mantener archivo al eliminar registro

Al marcar esta opción, el archivo subido en el motor de almacenamiento se mantendrá incluso si se elimina el registro de datos en la tabla de adjuntos o en la colección de archivos. Por defecto, esta opción no está marcada, lo que significa que el archivo en el motor de almacenamiento se eliminará junto con el registro.

Sugerencia

Cuando se selecciona «URL original», la dirección final del almacenamiento se construye a partir de varias partes:

<Prefijo de URL de acceso público>/<Ruta>/<Nombre de archivo><Extensión>

Por ejemplo: https://cdn.nocobase.com/app/user/avatar/20240529115151.png.

Cuando se selecciona «URL de NocoBase», el registro del archivo devuelve una ruta de NocoBase con el formato /files/.... La configuración anterior se sigue utilizando al acceder al servicio de almacenamiento.

URL de archivos y control de acceso

Un motor de almacenamiento puede devolver una URL de NocoBase o la URL original del servicio de almacenamiento. La URL de NocoBase es la opción predeterminada. Seleccione la URL original solo cuando un servicio externo deba utilizar directamente la dirección del almacenamiento.

Esta configuración se aplica por motor de almacenamiento. Después de guardarla, tanto los archivos existentes como los nuevos archivos subidos en ese motor devolverán las URL con el formato seleccionado. Los archivos no se mueven ni se vuelven a subir.

Configuración de la URL del archivo

URL de NocoBase

El registro del archivo devuelve una ruta de acceso proporcionada por NocoBase, por ejemplo:

/files/main/main/attachments/1.png

Las solicitudes a esta URL pasan primero por NocoBase y respetan los permisos de visualización configurados para el registro de archivo correspondiente. NocoBase solo lee el archivo o redirige a la dirección generada por el servicio de almacenamiento después de superar la comprobación de permisos.

Esta es la opción predeterminada recomendada. El registro devuelve una ruta de NocoBase, por lo que quien la utiliza no necesita saber si se usa almacenamiento local o en la nube.

URL original

El registro del archivo devuelve directamente la dirección generada por el servicio de almacenamiento, por ejemplo:

https://storage.example.com/path/to/file.png

Esta URL no comprueba los permisos de visualización del registro. En el almacenamiento local suele ser una URL heredada de /storage/uploads/, que requiere iniciar sesión de forma predeterminada pero no vuelve a comprobar el registro individual. En el almacenamiento en la nube suele ser una dirección de almacenamiento de objetos o CDN cuya política de acceso controla dicho servicio.

Seleccione la URL original solo cuando el consumidor no pueda usar una URL de NocoBase, por ejemplo, si no puede seguir redirecciones 302 o necesita explícitamente una dirección de almacenamiento de objetos o CDN.

Nota

Después de seleccionar la URL original, cualquier persona con una URL válida puede omitir los permisos del registro de archivo de NocoBase. En el almacenamiento local, la URL heredada sigue sujeta a la comprobación de inicio de sesión de /storage/uploads/; exponer directamente el directorio mediante un Nginx personalizado puede omitirla. En el almacenamiento en la nube, si la URL no tiene firma ni caducidad, asegúrese de que el bucket y el archivo permitan la lectura pública.

Permitir acceso público

«Permitir acceso público» solo tiene efecto cuando se selecciona «URL de NocoBase». Al marcarlo, el motor sigue devolviendo una URL de NocoBase, pero NocoBase deja de comprobar los permisos del registro al acceder a ella. Cualquier persona con la URL puede acceder al archivo.

Esta opción no cambia la configuración de lectura pública del propio servicio de almacenamiento. Solo controla si NocoBase comprueba los permisos del registro del archivo.

Markdown, las páginas externas y los servicios de terceros también pueden usar una URL pública de NocoBase. Para usarla externamente, convierta la ruta devuelta por la API en una URL absoluta que incluya el dominio de NocoBase y asegúrese de que el consumidor pueda seguir redirecciones 302.

Comportamiento del almacenamiento local

Una URL de NocoBase para almacenamiento local termina redirigiendo a /storage/uploads/. «Permitir acceso público» omite los permisos del registro en la fase /files/, pero la URL heredada sigue requiriendo iniciar sesión de forma predeterminada. Para permitir la lectura anónima de archivos locales, configure además LEGACY_LOCAL_STORAGE_PUBLIC_ACCESS=true y reinicie la aplicación. Esta variable expone toda la ruta heredada /storage/uploads/, no solo el almacenamiento seleccionado; evalúe todos los archivos existentes antes de activarla.

Si usa un Nginx personalizado, configure también auth_request para /storage/uploads/. Consulte Proxy inverso con Nginx para ver la configuración completa.

Cómo elegir

Caso de usoURL del archivoPermitir acceso público
Los archivos deben respetar los permisos de rol y de datosURL de NocoBaseSin marcar
Markdown, una página externa o un servicio de terceros necesita acceso público al archivoURL de NocoBaseMarcado
El consumidor no puede seguir redirecciones 302 o debe usar directamente la dirección del almacenamientoURL originalNo aplicable
Nota

Almacenamiento local, Amazon S3, Aliyun OSS y Tencent COS no generan URL firmadas temporales. Incluso con la URL de NocoBase y los permisos del registro activados, quien obtenga la dirección original puede omitir dichos permisos. Las URL locales heredadas siguen requiriendo iniciar sesión de forma predeterminada; el acceso a una URL original de almacenamiento en la nube depende de la configuración de lectura pública del servicio.

Para contratos, documentos de identidad, materiales internos u otros archivos que no deban ser públicos, utilice S3 Pro y consulte su configuración específica de control de acceso.

Si ya utiliza un motor de almacenamiento público y quiere migrar los archivos existentes a S3 Pro, consulte Migrar a S3 Pro.