> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/contributor/contributor-es/contenido/file-system.md).

# Sistema de archivos

Detrás de las distintas APIs de contenido en el protocolo de Decentraland hay una implementación de un sistema de archivos distribuido. Cada servidor de contenido mantiene una copia de todo el almacenamiento y sincroniza las actualizaciones que recibe con otras instancias.

Los archivos cargados al sistema son **inmutables**. Una vez desplegados, ni su identificador ni su contenido cambian. Solo pueden actualizarse en el sentido de que se carga una nueva versión y las aplicaciones eligen usarla, mientras que la anterior puede descartarse.

Puedes experimentar con archivos en la [práctica](https://github.com/decentraland/docs/tree/main/contributor/content/practice/README.md) sección.

### Identificadores de archivos <a href="#identifiers" id="identifiers"></a>

El sistema de archivos de Decentraland está organizado en un índice plano (es decir, no hay una jerarquía natural de directorios), donde cada archivo se identifica mediante una cadena única.

Las cadenas identificadoras llevan como prefijo [base32](https://en.wikipedia.org/wiki/Base32) las codificaciones del hash SHA-256 del contenido del archivo, usando el [IPFS CID v1](https://docs.ipfs.tech/concepts/content-addressing/) algoritmo. Se ven así:

```
bafybeicgclohdfaccu2sqqkzrzuenjxzcry3m5vcb4mpxgucjl3oheq5tq
```

El prefijo en los primeros bytes indica la codificación, la versión y el tipo de hash del propio identificador.

{% hint style="info" %}
Por razones históricas, algunas APIs llaman al identificador del archivo *hash* en lugar de *id*, pero se refieren a la misma cosa. También puedes encontrar identificadores heredados en contenido antiguo que se ven un poco diferentes.
{% endhint %}

En la práctica, estos detalles no son necesarios para descubrir y descargar contenido. La mayoría de los clientes del protocolo pueden tratar los identificadores como cadenas opacas sin perder capacidades.

Ten en cuenta que los identificadores CIDv1 modernos son compatibles con IPFS, generando el mismo CID para el mismo archivo, por lo que IPFS puede usarse como el proveedor de archivos.

### Propiedad y persistencia

Excepto por [instantáneas](https://github.com/decentraland/docs/tree/main/contributor/content/snapshots/README.md), los archivos almacenados en la red están asociados a una [entidad](https://github.com/decentraland/docs/tree/main/contributor/content/entities/README.md) propiedad de una cuenta de Ethereum. El propietario es el único que puede actualizar la entidad y los archivos relacionados.

El protocolo exige que los servidores de contenido almacenen siempre la versión más reciente de una entidad y sus archivos, pero pueden elegir si conservar las versiones antiguas según su configuración individual.

### Descarga de archivos <a href="#downloading" id="downloading"></a>

El [`/contents/<fileId>`](https://decentraland.github.io/catalyst-api-specs/#tag/Content-Server/operation/getContentFile) del servidor de contenido puede usarse para descargar cualquier archivo. Sus identificadores se encuentran en el manifiesto de la entidad padre. [de la entidad](https://github.com/decentraland/docs/tree/main/contributor/content/entities/README.md)manifiesto.

### Carga de archivos

Los archivos no se cargan de forma independiente. En su lugar, se empaquetan dentro de entidades y se cargan durante el despliegue de la entidad al servidor de contenido.

Consulta la [documentación para creadores de contenido](https://github.com/decentraland/docs/tree/main/creator/README.md) para más detalles.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/contributor/contributor-es/contenido/file-system.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
