# Almacenamiento de objetos Almacenamiento de objetos guarda cualquier archivo, con todas sus versiones. Los archivos están en carpetas, y cada carpeta decide quién puede verla. ## ¿Archivos o tablas? [#archivos-o-tablas] Use **Almacenamiento de objetos** para archivos que guarda tal como son: PDF, imágenes, la exportación original de una tabla. Use tablas para datos que filtra, consulta con SQL y cambia fila por fila. Una hoja de cálculo, un CSV o un Parquet se convierte en tabla en un paso, y una carpeta puede cargar cada archivo nuevo en una tabla por sí sola. ## Antes de empezar [#antes-de-empezar] - Una carpeta nueva solo la ven usted y los administradores del espacio de trabajo hasta que la comparta. - Su acceso a una carpeta es **Puede ver**, **Puede agregar y modificar** o **Puede administrar**. - Solo propietarios y administradores pueden eliminar carpetas, restaurar desde la papelera o eliminar para siempre. ## Crear una carpeta y agregar archivos [#crear-una-carpeta-y-agregar-archivos] ### Abra Almacenamiento de objetos [#abra-almacenamiento-de-objetos] Vaya a . ### Cree una carpeta [#cree-una-carpeta] Seleccione **Nueva carpeta**, escriba el **Nombre de la carpeta** y seleccione **Crear**. ### Agregue archivos [#agregue-archivos] Suelte archivos en la carpeta, o seleccione **Subir una carpeta** para traer una carpeta completa de su computador. En una carpeta, ordene por **Nombre**, **Más recientes** o **Más grandes**, cambie entre **Cuadrícula** y **Lista**, o use **Buscar en esta carpeta**. La búsqueda de la página principal cubre todos los archivos que puede abrir; **Tipo** la acota a imágenes, documentos, archivos de tabla, grabaciones, archivos comprimidos o texto. ```python title="folders.py" from klarety import Nexus with Nexus.connect() as nx: reports = nx.folders.create("reports") year = reports.mkdir("2026") year.upload("q3-summary.pdf") for entry in year.list(): print(entry["kind"], entry["name"]) for found in nx.files.find("summary"): print(found) ``` `nx.folders.at("reports/2026")` abre una carpeta por su ruta. `folder.download("./local")` guarda en su máquina cada archivo que está directamente en la carpeta. ## Trabajar con un archivo [#trabajar-con-un-archivo] Abra el menú de un archivo para **Descargar**, **Abrir**, **Cambiar nombre**, **Mover a** otra carpeta o **Eliminar**. Un archivo abierto muestra una vista previa, cuándo y por dónde se subió (la web, un proyecto, una app en vivo o el SDK), sus etiquetas y **Versiones anteriores**. **Restaurar** vuelve actual una versión anterior. Para descargar una carpeta completa, abra **Más** y elija **Descargar como zip**. ```python nx.files.versions(file_id) nx.files.restore_version(file_id, 2) nx.files.move(file_id, nx.folders.at("archive")) data = nx.files.open(file_id) nx.files.download(file_id, "./q3-summary.pdf") ``` `open()` lee el archivo completo en memoria; para uno grande use `download()`, que lo escribe a disco por partes. ## Crear una tabla desde un archivo [#crear-una-tabla-desde-un-archivo] Abra el menú de un archivo de tabla (CSV, Excel, Parquet, JSON y otros) y elija **Crear una tabla**. Nombre la tabla y seleccione **Importar**. El archivo se queda en su carpeta. Vea [Agregar datos](/docs/es/data/add-data) para los tipos de archivo y las opciones. ```python run = nx.files.load([file_id], into="customers") run = nx.folders.at("exports/customers").load(into="customers", mode="upsert", key=["customer_id"]) ``` `files.load()` carga los archivos que indica; `folder.load()` carga cada archivo que está directamente en la carpeta. Varios archivos con las mismas columnas llegan como un solo cambio. ## Importar archivos nuevos automáticamente [#importar-archivos-nuevos-automáticamente] Una carpeta puede cargar cada archivo nuevo en una tabla, una vez cada uno. Sirve para una exportación diaria. ### Abra la carpeta [#abra-la-carpeta] Abra la carpeta, seleccione **Más** y elija **Importar archivos nuevos automáticamente**. ### Elija la tabla [#elija-la-tabla] Escriba el **Esquema** y la **Tabla**, y elija qué pasa con **Cada archivo nuevo**: **Agregar filas** o **Reemplazar filas**. ### Actívelo [#actívelo] Seleccione **Activar**. La carpeta indica ahora a dónde van los archivos nuevos. Seleccione **Detener** para terminarlo. ```python title="watch_folder.py" from klarety import Nexus with Nexus.connect() as nx: inbox = nx.folders.at("exports/daily") watch = inbox.watch(into="daily_revenue", mode="upsert", key=["day"]) print(inbox.watches()) inbox.unwatch(watch["watch_id"]) ``` `mode` acepta los mismos valores que una carga: `auto`, `upsert` o `replace`. ## Compartir una carpeta [#compartir-una-carpeta] ### Abra quién puede verla [#abra-quién-puede-verla] En la carpeta, seleccione **Más** y luego **Quién puede ver esto**. ### Dé acceso [#dé-acceso] Seleccione **Dar acceso**. En **Quién**, elija una **Persona**, un **Proyecto** o **Todo el espacio de trabajo**, elija **Qué pueden hacer** y seleccione **Agregar**. Los niveles son **Puede ver**, **Puede agregar y modificar** y **Puede administrar**. Una carpeta dentro de otra sigue el acceso de la superior. **Dar a esta carpeta su propio acceso** parte exactamente de quienes podían verla, y desde ahí usted quita personas. **Seguir el acceso de la carpeta superior** la devuelve al acceso de la superior. Si no puede cambiar el acceso, pida a quien administra la carpeta. ```python folder = nx.folders.at("reports") folder.grant("person", "USER_ID", "read") folder.grant("project", "PROJECT_ID", "write") folder.grant("org", "org", "read") print(folder.access()) folder.revoke("person", "USER_ID") ``` Los niveles son `read`, `write` y `manage`. Para todo el espacio de trabajo, el tipo y el id son ambos `org`. `own_access()` y `follow_parent()` alternan una carpeta entre su propio acceso y el de la carpeta superior. ## Papelera [#papelera] Las carpetas y archivos eliminados quedan en la papelera un tiempo y luego se borran definitivamente. Cuánto tiempo depende de su plan; Gestión de datos lo muestra en **Elementos eliminados recuperables**. - Eliminar una carpeta se lleva todo lo que contiene, y los proyectos que la vinculan la pierden también. Restaurar la carpeta devuelve ambas cosas. - La carpeta propia de un proyecto no se puede eliminar sola. Se va cuando se elimina el proyecto. - Solo propietarios y administradores pueden **Restaurar**, **Eliminar para siempre** o **Vaciar papelera**. **Eliminar para siempre** y **Vaciar papelera** eliminan ahora todas las versiones. Nada puede recuperarlas. Abra y seleccione **Papelera**. ```python print(nx.folders.trash()) nx.files.restore(file_id) nx.folders(folder_id).restore() ``` ## Siguientes pasos [#siguientes-pasos] - [Agregar datos](/docs/es/data/add-data): convierta un archivo en tabla. - [Acceso a datos](/docs/es/data/data-access): acceso a esquemas, tablas y conexiones. - [Deshacer y restaurar](/docs/es/data/undo-and-restore): restaure cambios en tablas.