# Descarga de archivos

## Descargar un solo archivo

### hf_hub_download[[huggingface_hub.hf_hub_download]]

#### huggingface_hub.hf_hub_download[[huggingface_hub.hf_hub_download]]

```python
huggingface_hub.hf_hub_download(repo_id: str, filename: str, subfolder: str | None = None, repo_type: str | None = None, revision: str | None = None, library_name: str | None = None, library_version: str | None = None, cache_dir: str | pathlib.Path | None = None, local_dir: str | pathlib.Path | None = None, user_agent: dict | str | None = None, force_download: bool = False, etag_timeout: float = 10, token: bool | str | None = None, local_files_only: bool = False, headers: dict[str, str] | None = None, endpoint: str | None = None, tqdm_class: type[tqdm.std.tqdm] | None = None, dry_run: bool = False)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/file_download.py#L855)

**Parámetros:**

repo_id (`str`) : El nombre de un usuario u organización y el nombre de un repositorio separados por una `/`.

filename (`str`) : El nombre del archivo en el repositorio.

subfolder (`str`, *opcional*) : Un valor opcional que corresponde a una carpeta dentro del repositorio del modelo.

repo_type (`str`, *opcional*) : Establezca `"dataset"`, `"space"` o `"kernel"` si está descargando de un repositorio de dataset, space o kernel, `None` o `"model"` si está descargando de un modelo. El valor predeterminado es `None`.

revision (`str`, *opcional*) : Un identificador de revisión de Git opcional, que puede ser un nombre de rama, una etiqueta o un hash de commit.

library_name (`str`, *opcional*) : El nombre de la biblioteca a la que corresponde el objeto.

library_version (`str`, *opcional*) : La versión de la biblioteca.

cache_dir (`str`, `Path`, *opcional*) : Ruta a la carpeta donde se almacenan los archivos en caché.

local_dir (`str` o `Path`, *opcional*) : Si se proporciona, el archivo descargado se colocará en este directorio.

user_agent (`dict`, `str`, *opcional*) : La información del user-agent en forma de diccionario o cadena de caracteres.

force_download (`bool`, *opcional*, valor predeterminado `False`) : Si el archivo debe descargarse aunque ya exista en la caché local.

etag_timeout (`float`, *opcional*, valor predeterminado `10`) : Al obtener el ETag, cuántos segundos esperar a que el servidor envíe datos antes de abandonar la operación, valor que se pasa a `httpx2.request`.

token (`str`, `bool`, *opcional*) : Un token para usar en la descarga. - Si es `True`, el token se lee desde la carpeta de configuración de HuggingFace. - Si es una cadena de caracteres, se usa como token de autenticación.

local_files_only (`bool`, *opcional*, valor predeterminado `False`) : Si es `True`, evita descargar el archivo y devuelve la ruta al archivo en caché local si existe.

headers (`dict`, *opcional*) : Encabezados adicionales que se enviarán con la solicitud.

endpoint (`str`, *opcional*) : El punto de acceso de Hub al que se envía la solicitud. El valor predeterminado es el de `HF_ENDPOINT`.

tqdm_class (`tqdm`, *opcional*) : Si se proporciona, sobrescribe el comportamiento predeterminado de la barra de progreso. El argumento pasado debe heredar de `tqdm.auto.tqdm` o al menos imitar su comportamiento. El valor predeterminado es la barra de progreso personalizada de HF, que se puede desactivar estableciendo la variable de entorno `HF_HUB_DISABLE_PROGRESS_BARS`.

dry_run (`bool`, *opcional*, valor predeterminado `False`) : Si es `True`, realiza una ejecución de prueba sin descargar realmente el archivo. Devuelve un objeto [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.DryRunFileInfo) que contiene información sobre lo que se descargaría.

**Devuelve:** `str` o [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.DryRunFileInfo)

- Si `dry_run=False`: ruta local del archivo o, si la red está desactivada, la última versión del archivo en caché en el disco.
- Si `dry_run=True`: un objeto [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.DryRunFileInfo) que contiene información de descarga.

**Excepciones:** [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) o [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) o `~utils.RemoteEntryNotFoundError` o [LocalEntryNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.LocalEntryNotFoundError) o ``EnvironmentError`` o ``OSError`` o ``ValueError``

- [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) -- Si no se puede encontrar el repositorio del que se va a descargar. Esto puede deberse a que no existe o a que está configurado como `private` y no tienes acceso.
- [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) -- Si no se puede encontrar la revisión desde la que se debe descargar.
- `~utils.RemoteEntryNotFoundError` -- Si no se puede encontrar el archivo para descargar.
- [LocalEntryNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.LocalEntryNotFoundError) -- Si la red está deshabilitada o no está disponible y el archivo no se encuentra en la caché.
- [`EnvironmentError`](https://docs.python.org/3/library/exceptions.html#EnvironmentError) -- Si `token=True` pero no se puede encontrar el token.
- [`OSError`](https://docs.python.org/3/library/exceptions.html#OSError) -- Si no se puede determinar el ETag.
- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Si el valor de algún parámetro no es válido.

Descarga un archivo dado si no está presente en la caché local.

El nuevo diseño de archivo de cacheta es el siguiente:
- El directorio de caché contiene un subdirectorio por repo_id (espaciado de nombres por tipo de repositorio)
- dentro de cada carpeta de repositorio:
  - refs es una lista de los pares de revisión => commit_hash más recientes conocidos
  - blobs contiene los blobs de archivo reales (identificados por su git-sha o sha256, dependiendo de si son archivos LFS o no)
  - snapshots contiene un subdirectorio por commit, cada "commit" contiene el subconjunto de archivos que se han resuelto en ese commit en particular. Cada nombre de archivo es un enlace simbólico al blob en ese commit en particular.

```
[  96]  .
└── [ 160]  models--julien-c--EsperBERTo-small
    ├── [ 160]  blobs
    │   ├── [321M]  403450e234d65943a7dcf7e05a771ce3c92faa84dd07db4ac20f592037a1e4bd
    │   ├── [ 398]  7cb18dc9bafbfcf74629a4b760af1b160957a83e
    │   └── [1.4K]  d7edf6bd2a681fb0175f7735299831ee1b22b812
    ├── [  96]  refs
    │   └── [  40]  main
    └── [ 128]  snapshots
        ├── [ 128]  2439f60ef33a0d46d85da5001d52aeda5b00ce9f
        │   ├── [  52]  README.md -> ../../blobs/d7edf6bd2a681fb0175f7735299831ee1b22b812
        │   └── [  76]  pytorch_model.bin -> ../../blobs/403450e234d65943a7dcf7e05a771ce3c92faa84dd07db4ac20f592037a1e4bd
        └── [ 128]  bbc77c8132af1cc5cf678da3f1ddf2de43606d48
            ├── [  52]  README.md -> ../../blobs/7cb18dc9bafbfcf74629a4b760af1b160957a83e
            └── [  76]  pytorch_model.bin -> ../../blobs/403450e234d65943a7dcf7e05a771ce3c92faa84dd07db4ac20f592037a1e4bd
```

Si se proporciona `local_dir`, la estructura de archivos del repositorio se replicará en esta ubicación. Al usar esta opción, no se utilizará `cache_dir` y se creará una carpeta `.cache/huggingface/` en la raíz de `local_dir` para almacenar algunos metadatos relacionados con los archivos descargados. Aunque este mecanismo no es tan robusto como el sistema de caché principal, está optimizado para obtener regularmente la última versión de un repositorio.

### hf_hub_url[[huggingface_hub.hf_hub_url]]

#### huggingface_hub.hf_hub_url[[huggingface_hub.hf_hub_url]]

```python
huggingface_hub.hf_hub_url(repo_id: str, filename: str, subfolder: str | None = None, repo_type: str | None = None, revision: str | None = None, endpoint: str | None = None)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/file_download.py#L210)

**Parámetros:**

repo_id (`str`) : Un nombre de espacio de nombres (usuario u organización) y un nombre de repositorio separados por una `/`.

filename (`str`) : El nombre del archivo en el repositorio.

subfolder (`str`, *opcional*) : Un valor opcional que corresponde a una carpeta dentro del repositorio.

repo_type (`str`, *opcional*) : Establezca `"dataset"`, `"space"` o `"kernel"` si está descargando de un repositorio de dataset, space o kernel, `None` o `"model"` si está descargando de un modelo. El valor predeterminado es `None`.

revision (`str`, *opcional*) : Un identificador de revisión de Git opcional, que puede ser un nombre de rama, una etiqueta o un hash de commit.

endpoint (`str`, *opcional*) : El punto de acceso de Hub al que se envía la solicitud. El valor predeterminado es el de `HF_ENDPOINT`.

Construya la URL de un archivo a partir de la información proporcionada.

La dirección resuelta puede ser una URL alojada en huggingface.co o un enlace a Cloudfront (una red de distribución de contenido, o CDN) para archivos grandes de más de unos pocos MB.

Ejemplo:

```python
>>> from huggingface_hub import hf_hub_url

>>> hf_hub_url(
...     repo_id="julien-c/EsperBERTo-small", filename="pytorch_model.bin"
... )
'https://huggingface.co/julien-c/EsperBERTo-small/resolve/main/pytorch_model.bin'
```

> [!TIP]
> Notas:
>
> Cloudfront se replica en todo el mundo, por lo que las descargas son mucho más rápidas para el usuario final (y también reduce nuestros costos de ancho de banda).
>
> Cloudfront almacena en caché los archivos de forma agresiva por defecto (el TTL predeterminado es de 24 horas), sin embargo, esto no es un problema aquí porque implementamos un sistema de versionado basado en git en huggingface.co, lo que significa que almacenamos los archivos en S3/Cloudfront de manera direccionable por contenido (es decir, el nombre del archivo es su hash). El uso de nombres de archivo direccionables por contenido significa que la caché nunca puede estar desactualizada.
>
> En cuanto a la caché del lado del cliente de esta biblioteca, basamos nuestra caché en la etiqueta de entidad (`ETag`) de los objetos, que es un identificador de una versión específica de un recurso [1]_. El ETag de un objeto es: su git-sha1 si está almacenado en git, o su sha256 si está almacenado en git-lfs.

Referencias:

-  [1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag

## Descarga una instantánea del repositorio[[huggingface_hub.snapshot_download]]

#### huggingface_hub.snapshot_download[[huggingface_hub.snapshot_download]]

```python
huggingface_hub.snapshot_download(repo_id: str, repo_type: str | None = None, revision: str | None = None, cache_dir: str | pathlib.Path | None = None, local_dir: str | pathlib.Path | None = None, library_name: str | None = None, library_version: str | None = None, user_agent: dict | str | None = None, etag_timeout: float = 10, force_download: bool = False, token: bool | str | None = None, local_files_only: bool = False, allow_patterns: list[str] | str | None = None, ignore_patterns: list[str] | str | None = None, max_workers: int = 8, tqdm_class: type[tqdm.asyncio.tqdm_asyncio] | None = None, headers: dict[str, str] | None = None, endpoint: str | None = None, dry_run: bool = False)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_snapshot_download.py#L121)

**Parámetros:**

repo_id (`str`) : El nombre de un usuario u organización y el nombre de un repositorio separados por una `/`.

repo_type (`str`, *opcional*) : Establezca `"dataset"`, `"space"` o `"kernel"` si está descargando de un repositorio de dataset, space o kernel, `None` o `"model"` si está descargando de un modelo. El valor predeterminado es `None`.

revision (`str`, *opcional*) : Un identificador de revisión de Git opcional, que puede ser un nombre de rama, una etiqueta o un hash de commit.

cache_dir (`str`, `Path`, *opcional*) : Ruta a la carpeta donde se almacenan los archivos en caché.

local_dir (`str` o `Path`, *opcional*) : Si se proporciona, los archivos descargados se colocarán en este directorio.

library_name (`str`, *opcional*) : El nombre de la biblioteca a la que corresponde el objeto.

library_version (`str`, *opcional*) : La versión de la biblioteca.

user_agent (`str`, `dict`, *opcional*) : La información del agente de usuario en forma de un diccionario o una cadena.

etag_timeout (`float`, *opcional*, valor predeterminado `10`) : Al obtener el ETag, cuántos segundos esperar a que el servidor envíe datos antes de abandonar la operación, valor que se pasa a `httpx2.request`.

force_download (`bool`, *opcional*, valor predeterminado `False`) : Si el archivo debe descargarse aunque ya exista en la caché local.

token (`str`, `bool`, *opcional*) : Un token para usar en la descarga. - Si es `True`, el token se lee desde la carpeta de configuración de HuggingFace. - Si es una cadena de caracteres, se usa como token de autenticación.

headers (`dict`, *opcional*) : Encabezados adicionales para incluir en la solicitud. Estos encabezados tienen prioridad sobre los demás.

endpoint (`str`, *opcional*) : El punto de acceso de Hub al que se envía la solicitud. El valor predeterminado es el de `HF_ENDPOINT`.

local_files_only (`bool`, *opcional*, valor predeterminado `False`) : Si es `True`, no se descargan archivos aunque no estén en `cache_dir` o `local_dir`.

allow_patterns (`list[str]` o `str`, *opcional*) : Si se proporciona, solo se descargan los archivos que coincidan con al menos un patrón.

ignore_patterns (`list[str]` o `str`, *opcional*) : Si se proporciona, los archivos que coincidan con alguno de los patrones no se descargarán.

max_workers (`int`, *opcional*) : Número de hilos concurrentes para descargar archivos (1 hilo = 1 descarga de archivo). El valor predeterminado es 8.

tqdm_class (`tqdm`, *opcional*) : Si se proporciona, sobrescribe el comportamiento predeterminado de la barra de progreso. El argumento pasado debe heredar de `tqdm.auto.tqdm` o al menos imitar su comportamiento. Tenga en cuenta que `tqdm_class` no se pasa a cada descarga individual. El valor predeterminado es la barra de progreso personalizada de HF, que se puede desactivar estableciendo la variable de entorno `HF_HUB_DISABLE_PROGRESS_BARS`.

dry_run (`bool`, *opcional*, valor predeterminado `False`) : Si `True`, realiza una ejecución de prueba sin descargar realmente los archivos. Devuelve una lista de objetos [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.DryRunFileInfo) que contienen información sobre lo que se descargaría.

**Devuelve:** `str` o lista de [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.DryRunFileInfo)

- Si `dry_run=False`: Ruta local de la instantánea.
- Si `dry_run=True`: una lista de objetos [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.DryRunFileInfo) que contienen información de descarga.

**Excepciones:** [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) o [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) o [IncompleteSnapshotError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.IncompleteSnapshotError) o ``EnvironmentError`` o ``OSError`` o ``ValueError``

- [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) -- Si no se puede encontrar el repositorio del que se va a descargar. Esto puede deberse a que no existe o a que está configurado como `private` y no tienes acceso.
- [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) -- Si no se puede encontrar la revisión desde la que se debe descargar.
- [IncompleteSnapshotError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.IncompleteSnapshotError) -- Si no se puede acceder al Hub (sin conexión, problema de conexión o `local_files_only=True`) y la instantánea en caché no contiene algunos de los archivos solicitados.
- [`EnvironmentError`](https://docs.python.org/3/library/exceptions.html#EnvironmentError) -- Si `token=True` y no se puede encontrar el token.
- [`OSError`](https://docs.python.org/3/library/exceptions.html#OSError) -- si no se puede determinar el ETag.
- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Si el valor de algún parámetro no es válido.

Descarga los archivos del repositorio.

Descarga un instantáneo completo de los archivos de un repositorio en la revisión especificada. Esto es útil cuando se necesitan todos los archivos de un repositorio porque no se sabe cuáles se necesitarán _a priori_. Todos los archivos se anidan en una carpeta para mantener su ruta y nombre de archivo relativos a esa carpeta. También se puede filtrar qué archivos descargar usando `allow_patterns` y `ignore_patterns`.

Si se proporciona `local_dir`, la estructura de archivos del repositorio se replicará en esta ubicación. Al usar esta opción, no se utilizará `cache_dir` y se creará una carpeta `.cache/huggingface/` en la raíz de `local_dir` para almacenar algunos metadatos relacionados con los archivos descargados. Aunque este mecanismo no es tan robusto como el sistema de caché principal, está optimizado para obtener regularmente la última versión de un repositorio.

Una alternativa sería clonar el repositorio, pero esto requiere que git y git-lfs estén instalados y configurados correctamente. Además, no es posible filtrar qué archivos descargar al clonar un repositorio usando git.

## Leer el árbol del repositorio en caché[[huggingface_hub.get_cached_repo_tree]]

#### huggingface_hub.get_cached_repo_tree[[huggingface_hub.get_cached_repo_tree]]

```python
huggingface_hub.get_cached_repo_tree(repo_id: str, repo_type: str | None = None, revision: str | None = None, cache_dir: str | pathlib.Path | None = None, local_dir: str | pathlib.Path | None = None)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_snapshot_download.py#L603)

**Parámetros:**

repo_id (`str`) : El nombre de un usuario u organización y el nombre de un repositorio separados por una `/`.

repo_type (`str`, *opcional*) : Establezca `"dataset"`, `"space"` o `"kernel"` si se está listando desde un repositorio de dataset, space o kernel, `None` o `"model"` si se está listando desde un modelo. El valor predeterminado es `None`.

revision (`str`, *opcional*) : Un identificador de revisión de Git opcional, que puede ser un nombre de rama, una etiqueta o un hash de commit. El valor predeterminado es la rama predeterminada. Los nombres de rama/etiqueta se resuelven a un hash de commit usando la caché local (`refs/`).

cache_dir (`str`, `Path`, *opcional*) : Ruta a la carpeta donde se almacenan los archivos en caché. El valor predeterminado es el de `HF_HUB_CACHE`.

local_dir (`str` o `Path`, *opcional*) : Si se proporciona, lee el listado del árbol en caché de una descarga de `local_dir` (desde `local_dir/.cache/huggingface/`) en lugar de la caché principal. Las revisiones de rama/etiqueta se resuelven aún a un hash de commit usando la caché principal (`cache_dir`).

**Devuelve:** `list[RepoFile]`

La lista de objetos [RepoFile](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.RepoFile) en caché para esta revisión.

**Excepciones:** [CachedRepoTreeNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.CachedRepoTreeNotFoundError)

- [CachedRepoTreeNotFoundError](/docs/huggingface_hub/v2.4.0/es/package_reference/utilities#huggingface_hub.errors.CachedRepoTreeNotFoundError) -- Si no hay un listado de árbol en caché para la revisión solicitada (p. ej., el repositorio nunca se descargó en esta revisión).

Devuelve la lista de árbol en caché de un repositorio en una revisión dada, sin ninguna llamada de red.

La lista de árbol es el conjunto de archivos (con sus metadatos de descarga) de un repositorio en un commit. Se genera en disco como efecto secundario de [snapshot_download()](/docs/huggingface_hub/v2.4.0/es/package_reference/file_download#huggingface_hub.snapshot_download) (consulte los archivos de caché `trees/<commit_hash>.json`) y se utiliza para omitir las llamadas de red en descargas posteriores. Esta función expone directamente esa caché.

Si necesitas la lista actual del árbol de un repositorio en el Hub, usa [list_repo_tree()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.list_repo_tree) en su lugar.

Ejemplo:
```py
>>> from huggingface_hub import get_cached_repo_tree
>>> files = get_cached_repo_tree("openai-community/gpt2")
>>> [f.path for f in files]
['.gitattributes', 'config.json', 'model.safetensors', ...]
```

## Resolver una revisión

Resuelva un nombre de rama o etiqueta a un hash de commit una sola vez y luego pase el resultado para fijar todas las descargas al mismo commit. Consulte [HfApi.resolve_revision()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision) y la [guía del sistema de caché](../guides/manage-cache#pin-a-revision-advanced).

### ResolvedRevision[[huggingface_hub.ResolvedRevision]]

#### huggingface_hub.ResolvedRevision[[huggingface_hub.ResolvedRevision]]

```python
huggingface_hub.ResolvedRevision(resolved: str, initial: str | None = None, repo_id: str | None = None, repo_type: str | None = None)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_revision.py#L4)

**Parámetros:**

initial (`str` o `None`) : La revisión solicitada inicialmente por el usuario. Si es `None`, el valor de la cadena predeterminado es `"main"`.

resolved (`str`) : El hash del commit al que `initial` se resuelve.

Una revisión de git que ya se ha resuelto a un hash de commit.

`ResolvedRevision` es una subclase de `str`, por lo que se puede pasar a cualquier método de `huggingface_hub` que acepte un argumento `revision`. Su valor de cadena es la revisión solicitada inicialmente por el usuario (p. ej. `"main"`, `"refs/pr/4"`), lo que mantiene las URL y los mensajes de error legibles, mientras que `.resolved` contiene el hash del commit al que apunta.

Las instancias se construyen mediante [HfApi.resolve_revision()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision), que también almacena en caché local (carpeta `refs/`) el mapeo de `revision` -> `commit hash`.

Un hash de commit solo tiene significado para el repositorio contra el que se resolvió, por lo que una instancia también recuerda ese repositorio. Resolverlo de nuevo para otro repositorio no es un error: la revisión solicitada inicialmente se resuelve de nuevo (ver [HfApi.resolve_revision()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision)).

Ejemplo:
```python
>>> from huggingface_hub import resolve_revision
>>> revision = resolve_revision("openai-community/gpt2")
>>> revision
ResolvedRevision(initial=None, resolved='607a30d783dfa663caf39e06633721c8d4cfcd7e')
>>> revision == "main"  # it's a string
True
>>> revision.resolved
'607a30d783dfa663caf39e06633721c8d4cfcd7e'
```

## Obtener metadatos sobre un archivo

### get_hf_file_metadata[[huggingface_hub.get_hf_file_metadata]]

#### huggingface_hub.get_hf_file_metadata[[huggingface_hub.get_hf_file_metadata]]

```python
huggingface_hub.get_hf_file_metadata(url: str, token: bool | str | None = None, timeout: float | None = 10, library_name: str | None = None, library_version: str | None = None, user_agent: dict | str | None = None, headers: dict[str, str] | None = None, endpoint: str | None = None, retry_on_errors: bool = False)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/file_download.py#L1617)

**Parámetros:**

url (`str`) : URL del archivo, por ejemplo, la devuelta por [hf_hub_url()](/docs/huggingface_hub/v2.4.0/es/package_reference/file_download#huggingface_hub.hf_hub_url).

token (`str` o `bool`, *opcional*) : Un token para usar en la descarga. - Si es `True`, el token se lee desde la carpeta de configuración de HuggingFace. - Si es `False` o `None`, no se proporciona ningún token. - Si es una cadena de caracteres, se usa como token de autenticación.

timeout (`float`, *opcional*, valor predeterminado 10) : Número de segundos que se espera a que el servidor envíe metadatos antes de abandonar la espera.

library_name (`str`, *opcional*) : El nombre de la biblioteca a la que corresponde el objeto.

library_version (`str`, *opcional*) : La versión de la biblioteca.

user_agent (`dict`, `str`, *opcional*) : La información del user-agent en forma de diccionario o cadena de caracteres.

headers (`dict`, *opcional*) : Encabezados adicionales que se enviarán con la solicitud.

endpoint (`str`, *opcional*) : Punto de acceso del Hub. El valor predeterminado es .

retry_on_errors (`bool`, *opcional*, valor predeterminado `False`) : Si se deben reintentar los errores (429, 5xx, tiempo de espera agotado, errores de red). Si es False, no se realiza ningún reintento para un cambio rápido a la caché local.

**Devuelve:**

Un objeto [HfFileMetadata](/docs/huggingface_hub/v2.4.0/es/package_reference/file_download#huggingface_hub.HfFileMetadata) que contiene metadatos como ubicación, etag, tamaño y commit_hash.

Obtener los metadatos de un archivo versionado en el Hub para una URL dada.

### HfFileMetadata[[huggingface_hub.HfFileMetadata]]

#### huggingface_hub.HfFileMetadata[[huggingface_hub.HfFileMetadata]]

```python
huggingface_hub.HfFileMetadata(commit_hash: str | None, etag: str | None, location: str, size: int | None, xet_file_data: huggingface_hub.utils._xet.XetFileData | None)
```

[Fuente](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/file_download.py#L155)

**Parámetros:**

commit_hash (`str`, *opcional*) : El commit_hash relacionado con el archivo.

etag (`str`, *opcional*) : Etag del archivo en el servidor.

location (`str`) : Ubicación donde descargar el archivo. Puede ser una URL del Hub o no (CDN).

size (`size`) : Tamaño del archivo. En el caso de un archivo LFS, contiene el tamaño del archivo LFS real, no el del puntero.

xet_file_data (`XetFileData`, *opcional*) : Información de Xet para el archivo. Solo se establece si el archivo se almacena usando el almacenamiento de Xet.

Estructura de datos que contiene información sobre un archivo versionado en el Hub.

Devuelto por [get_hf_file_metadata()](/docs/huggingface_hub/v2.4.0/es/package_reference/file_download#huggingface_hub.get_hf_file_metadata) en función de una URL.

## Caché

Los métodos mostrados anteriormente están diseñados para funcionar con un sistema de caché que evita la descarga repetida de archivos. El sistema de caché se actualizó en la v0.8.0 para convertirse en el sistema de caché central compartido entre las bibliotecas que dependen del Hub.

Lea la [guía del sistema de caché](../guides/manage-cache) para una presentación detallada de la caché en HF.

