> 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-ko/content/file-system.md).

# 파일 시스템

Decentraland 프로토콜의 다양한 콘텐츠 API의 기반에는 분산 파일 시스템 구현이 있습니다. 각 콘텐츠 서버는 전체 저장소의 복사본을 보유하며, 수신한 업데이트를 다른 인스턴스들과 동기화합니다.

시스템에 업로드된 파일은 **불변입니다**. 배포되면 식별자도 내용도 변경되지 않습니다. 파일은 새 버전을 업로드하고 애플리케이션이 그것을 사용하도록 선택하는 의미에서만 업데이트될 수 있으며, 이전 버전은 폐기할 수 있습니다.

다음에서 파일을 실험해 볼 수 있습니다 [섹션의 작동하는 코드로 스냅샷을 실험해 볼 수 있습니다.](https://github.com/decentraland/docs/blob/main/contributor/content/practice/README.md) 섹션입니다.

### 파일 식별자 <a href="#identifiers" id="identifiers"></a>

Decentraland의 파일 시스템은 평면 인덱스(즉, 디렉터리의 자연스러운 계층 구조가 없음)로 구성되어 있으며, 각 파일은 고유한 문자열로 식별됩니다.

식별자 문자열은 다음으로 시작하는 [base32](https://en.wikipedia.org/wiki/Base32) 인코딩된 파일 내용의 SHA-256 해시이며, [IPFS CID v1](https://docs.ipfs.tech/concepts/content-addressing/) 알고리즘을 사용합니다. 다음과 같은 형태입니다:

```
bafybeicgclohdfaccu2sqqkzrzuenjxzcry3m5vcb4mpxgucjl3oheq5tq
```

앞부분 몇 바이트의 접두사는 식별자 자체의 인코딩, 버전, 해시 유형을 나타냅니다.

{% hint style="info" %}
역사적인 이유로 일부 API는 파일 식별자를 *hash* 대신 *id*라고 부르지만, 이는 같은 것을 가리킵니다. 오래된 콘텐츠에서는 조금 다른 옛 식별자를 볼 수도 있습니다.
{% endhint %}

실제로 이러한 세부 사항은 콘텐츠를 찾고 다운로드하는 데 필요하지 않습니다. 프로토콜의 대부분 클라이언트는 기능을 잃지 않고 식별자를 불투명한 문자열처럼 취급할 수 있습니다.

현대적인 CIDv1 식별자는 IPFS와 호환되어 같은 파일에 대해 동일한 CID를 생성하므로, IPFS를 파일 제공자로 사용할 수 있습니다.

### 소유권과 영속성

다음을 제외하고 [스냅샷](https://github.com/decentraland/docs/blob/main/contributor/content/snapshots/README.md), 네트워크에 저장된 파일은 [엔티티를](https://github.com/decentraland/docs/blob/main/contributor/content/entities/README.md) 이더리움 계정이 소유합니다. 소유자만 엔티티와 관련 파일을 업데이트할 수 있습니다.

콘텐츠 서버는 프로토콜에 따라 엔티티와 그 파일의 최신 버전을 항상 저장해야 하지만, 자체 설정에 따라 이전 버전을 보존할지는 선택할 수 있습니다.

### 파일 다운로드 <a href="#downloading" id="downloading"></a>

이 [`/contents/<fileId>`](https://decentraland.github.io/catalyst-api-specs/#tag/Content-Server/operation/getContentFile) 콘텐츠 서버의 엔드포인트를 사용하여 어떤 파일이든 다운로드할 수 있습니다. 해당 식별자는 상위 [엔티티의](https://github.com/decentraland/docs/blob/main/contributor/content/entities/README.md)매니페스트에서 찾을 수 있습니다.

### 파일 업로드

파일은 개별적으로 업로드되지 않습니다. 대신 엔티티 내부에 패키징되어 콘텐츠 서버에 엔티티를 배포할 때 업로드됩니다.

다음을 참조하세요 [콘텐츠 제작자 문서](https://github.com/decentraland/docs/blob/main/creator/README.md) 에서 자세한 내용을 확인하세요.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.decentraland.org/contributor/contributor-ko/content/file-system.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
