# Baixando arquivos

## Baixar um arquivo único

### 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)
```

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

**Parâmetros:**

repo_id (`str`) : O nome de um usuário ou organização e o nome de um repositório separados por `/`.

filename (`str`) : O nome do arquivo no repositório.

subfolder (`str`, *opcional*) : Um valor opcional correspondente a uma pasta dentro do repositório do modelo.

repo_type (`str`, *opcional*) : Defina como `"dataset"`, `"space"` ou `"kernel"` se estiver baixando de um repositório de dataset, space ou kernel, `None` ou `"model"` se estiver baixando de um modelo. O padrão é `None`.

revision (`str`, *opcional*) : Um id de revisão Git opcional, que pode ser um nome de branch, uma tag ou um hash de commit.

library_name (`str`, *opcional*) : O nome da biblioteca à qual o objeto corresponde.

library_version (`str`, *opcional*) : A versão da biblioteca.

cache_dir (`str`, `Path`, *opcional*) : Caminho para a pasta onde os arquivos em cache são armazenados.

local_dir (`str` ou `Path`, *opcional*) : Se fornecido, o arquivo baixado será colocado neste diretório.

user_agent (`dict`, `str`, *opcional*) : As informações do user-agent na forma de um dicionário ou uma string.

force_download (`bool`, *opcional*, padrão `False`) : Se o arquivo deve ser baixado mesmo que já exista no cache local.

etag_timeout (`float`, *opcional*, padrão `10`) : Ao buscar o ETag, quantos segundos esperar o servidor para enviar os dados antes de desistir, valor que é passado para `httpx2.request`.

token (`str`, `bool`, *opcional*) : Um token a ser usado para o download. - Se `True`, o token é lido da pasta de configuração do HuggingFace. - Se for uma string, ele é usado como token de autenticação.

local_files_only (`bool`, *opcional*, padrão `False`) : Se `True`, evita o download do arquivo e retorna o caminho para o arquivo em cache local, se ele existir.

headers (`dict`, *opcional*) : Cabeçalhos adicionais a serem enviados com a solicitação.

endpoint (`str`, *opcional*) : O endpoint do Hub para onde enviar a solicitação. O padrão é o valor de `HF_ENDPOINT`.

tqdm_class (`tqdm`, *opcional*) : Se fornecido, sobrescreve o comportamento padrão da barra de progresso. O argumento passado deve herdar de `tqdm.auto.tqdm` ou, pelo menos, imitar seu comportamento. O padrão é a barra de progresso personalizada do HF, que pode ser desativada definindo a variável de ambiente `HF_HUB_DISABLE_PROGRESS_BARS`.

dry_run (`bool`, *opcional*, padrão `False`) : Se `True`, executa uma simulação sem efetivamente baixar o arquivo. Retorna um objeto [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.DryRunFileInfo) contendo informações sobre o que seria baixado.

**Retorna:** `str` ou [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.DryRunFileInfo)

- Se `dry_run=False`: caminho local do arquivo ou, se a rede estiver desativada, a última versão do arquivo em cache no disco.
- Se `dry_run=True`: um objeto [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.DryRunFileInfo) contendo informações de download.

**Exceções:** [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) ou [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) ou `~utils.RemoteEntryNotFoundError` ou [LocalEntryNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.LocalEntryNotFoundError) ou ``EnvironmentError`` ou ``OSError`` ou ``ValueError``

- [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) -- Se o repositório de onde o download será feito não puder ser encontrado. Isso pode ocorrer porque ele não existe ou porque está definido como `private` e você não tem acesso.
- [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) -- Se a revisão de onde o download deve ser feito não for encontrada.
- `~utils.RemoteEntryNotFoundError` -- Se o arquivo a ser baixado não for encontrado.
- [LocalEntryNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.LocalEntryNotFoundError) -- Se a rede estiver desativada ou indisponível e o arquivo não for encontrado no cache.
- [`EnvironmentError`](https://docs.python.org/3/library/exceptions.html#EnvironmentError) -- Se `token=True`, mas o token não puder ser encontrado.
- [`OSError`](https://docs.python.org/3/library/exceptions.html#OSError) -- Se o ETag não puder ser determinado.
- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Se o valor de algum parâmetro for inválido.

Baixe um arquivo específico, caso ele ainda não esteja presente no cache local.

O novo layout de arquivo de cache é o seguinte:
- O diretório de cache contém uma subpasta por repo_id (namespaced por tipo de repositório)
- dentro de cada pasta de repositório:
  - refs é uma lista dos pares mais recentes conhecidos de revisão => commit_hash
  - blobs contém os blobs de arquivo reais (identificados pelo git-sha ou sha256, dependendo de serem arquivos LFS ou não)
  - snapshots contém uma subpasta por commit, cada "commit" contém o subconjunto de arquivos que foram resolvidos naquele commit específico. Cada nome de arquivo é um symlink para o blob naquele commit específico.

```
[  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
```

Se `local_dir` for fornecido, a estrutura de arquivos do repositório será replicada neste local. Ao usar esta opção, o `cache_dir` não será utilizado e uma pasta `.cache/huggingface/` será criada na raiz de `local_dir` para armazenar alguns metadados relacionados aos arquivos baixados. Embora este mecanismo não seja tão robusto quanto o sistema de cache principal, ele é otimizado para buscar regularmente a versão mais recente de um repositório.

### 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)
```

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

**Parâmetros:**

repo_id (`str`) : Um nome de namespace (usuário ou organização) e um nome de repositório separados por `/`.

filename (`str`) : O nome do arquivo no repositório.

subfolder (`str`, *opcional*) : Um valor opcional correspondente a uma pasta dentro do repositório.

repo_type (`str`, *opcional*) : Defina como `"dataset"`, `"space"` ou `"kernel"` se estiver baixando de um repositório de dataset, space ou kernel, `None` ou `"model"` se estiver baixando de um modelo. O padrão é `None`.

revision (`str`, *opcional*) : Um id de revisão Git opcional, que pode ser um nome de branch, uma tag ou um hash de commit.

endpoint (`str`, *opcional*) : O endpoint do Hub para onde enviar a solicitação. O padrão é o valor de `HF_ENDPOINT`.

Construa a URL de um arquivo a partir das informações fornecidas.

O endereço resolvido pode ser uma URL hospedada no huggingface.co ou um link para o Cloudfront (uma rede de entrega de conteúdo, ou CDN) para arquivos grandes que excedem alguns MBs.

Exemplo:

```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]
> Observações:
>
> O Cloudfront é replicado globalmente, o que torna os downloads muito mais rápidos para o usuário final (e também reduz nossos custos de banda).
>
> O Cloudfront faz o cache de arquivos de forma agressiva por padrão (TTL padrão de 24 horas), no entanto, isso não é um problema aqui, pois implementamos um sistema de versionamento baseado em git no huggingface.co, o que significa que armazenamos os arquivos no S3/Cloudfront de uma forma endereçável por conteúdo (ou seja, o nome do arquivo é o seu hash). Usar nomes de arquivos endereçáveis por conteúdo significa que o cache nunca pode estar desatualizado.
>
> Em termos de cache no lado do cliente a partir desta biblioteca, baseamos nosso cache na tag de entidade (`ETag`) dos objetos, que é um identificador de uma versão específica de um recurso [1]_. O ETag de um objeto é: seu git-sha1, se armazenado em git, ou seu sha256, se armazenado em git-lfs.

Referências:

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

## Baixe um snapshot do repositório[[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)
```

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

**Parâmetros:**

repo_id (`str`) : O nome de um usuário ou organização e o nome de um repositório separados por `/`.

repo_type (`str`, *opcional*) : Defina como `"dataset"`, `"space"` ou `"kernel"` se estiver baixando de um repositório de dataset, space ou kernel, `None` ou `"model"` se estiver baixando de um modelo. O padrão é `None`.

revision (`str`, *opcional*) : Um id de revisão Git opcional, que pode ser um nome de branch, uma tag ou um hash de commit.

cache_dir (`str`, `Path`, *opcional*) : Caminho para a pasta onde os arquivos em cache são armazenados.

local_dir (`str` ou `Path`, *opcional*) : Se fornecido, os arquivos baixados serão colocados neste diretório.

library_name (`str`, *opcional*) : O nome da biblioteca à qual o objeto corresponde.

library_version (`str`, *opcional*) : A versão da biblioteca.

user_agent (`str`, `dict`, *opcional*) : As informações do user-agent na forma de um dicionário ou uma string.

etag_timeout (`float`, *opcional*, padrão `10`) : Ao buscar o ETag, quantos segundos esperar o servidor para enviar os dados antes de desistir, valor que é passado para `httpx2.request`.

force_download (`bool`, *opcional*, padrão `False`) : Se o arquivo deve ser baixado mesmo que já exista no cache local.

token (`str`, `bool`, *opcional*) : Um token a ser usado para o download. - Se `True`, o token é lido da pasta de configuração do HuggingFace. - Se for uma string, ele é usado como token de autenticação.

headers (`dict`, *opcional*) : Cabeçalhos adicionais a incluir na solicitação. Esses cabeçalhos têm precedência sobre os demais.

endpoint (`str`, *opcional*) : O endpoint do Hub para onde enviar a solicitação. O padrão é o valor de `HF_ENDPOINT`.

local_files_only (`bool`, *opcional*, padrão `False`) : Se `True`, não baixa nenhum arquivo, mesmo que eles não estejam em `cache_dir` ou `local_dir`.

allow_patterns (`list[str]` ou `str`, *opcional*) : Se fornecido, apenas os arquivos que corresponderem a pelo menos um padrão serão baixados.

ignore_patterns (`list[str]` ou `str`, *opcional*) : Se fornecido, os arquivos que corresponderem a qualquer um dos padrões não serão baixados.

max_workers (`int`, *opcional*) : Número de threads concorrentes para baixar arquivos (1 thread = 1 download de arquivo). Padrão: 8.

tqdm_class (`tqdm`, *opcional*) : Se fornecido, sobrescreve o comportamento padrão da barra de progresso. O argumento passado deve herdar de `tqdm.auto.tqdm` ou, pelo menos, imitar seu comportamento. Observe que a `tqdm_class` não é passada para cada download individual. O padrão é a barra de progresso personalizada do HF, que pode ser desativada definindo a variável de ambiente `HF_HUB_DISABLE_PROGRESS_BARS`.

dry_run (`bool`, *opcional*, padrão `False`) : Se `True`, executa uma simulação sem efetivamente baixar os arquivos. Retorna uma lista de objetos [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.DryRunFileInfo) contendo informações sobre o que seria baixado.

**Retorna:** `str` ou lista de [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.DryRunFileInfo)

- Se `dry_run=False`: Caminho do snapshot local.
- Se `dry_run=True`: uma lista de objetos [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.DryRunFileInfo) contendo informações de download.

**Exceções:** [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) ou [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) ou [IncompleteSnapshotError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.IncompleteSnapshotError) ou ``EnvironmentError`` ou ``OSError`` ou ``ValueError``

- [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) -- Se o repositório de onde o download será feito não puder ser encontrado. Isso pode ocorrer porque ele não existe ou porque está definido como `private` e você não tem acesso.
- [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) -- Se a revisão de onde o download deve ser feito não for encontrada.
- [IncompleteSnapshotError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.IncompleteSnapshotError) -- Se o Hub não puder ser acessado (offline, problema de conexão ou `local_files_only=True`) e o snapshot em cache estiver faltando alguns dos arquivos solicitados.
- [`EnvironmentError`](https://docs.python.org/3/library/exceptions.html#EnvironmentError) -- Se `token=True` e o token não puder ser encontrado.
- [`OSError`](https://docs.python.org/3/library/exceptions.html#OSError) -- se o ETag não puder ser determinado.
- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Se o valor de algum parâmetro for inválido.

Baixe os arquivos do repositório.

Baixe um snapshot completo dos arquivos de um repositório na revisão especificada. Isso é útil quando você deseja todos os arquivos de um repositório porque não sabe quais deles precisará _a priori_. Todos os arquivos são aninhados em uma pasta para manter seu caminho e nome de arquivo relativos a essa pasta. Você também pode filtrar quais arquivos baixar usando `allow_patterns` e `ignore_patterns`.

Se `local_dir` for fornecido, a estrutura de arquivos do repositório será replicada neste local. Ao usar esta opção, o `cache_dir` não será utilizado e uma pasta `.cache/huggingface/` será criada na raiz de `local_dir` para armazenar alguns metadados relacionados aos arquivos baixados. Embora esse mecanismo não seja tão robusto quanto o sistema de cache principal, ele é otimizado para buscar regularmente a versão mais recente de um repositório.

Uma alternativa seria clonar o repositório, mas isso requer que o git e o git-lfs estejam instalados e configurados corretamente. Também não é possível filtrar quais arquivos baixar ao clonar um repositório usando o git.

## Leia a árvore do repositório em cache[[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)
```

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

**Parâmetros:**

repo_id (`str`) : O nome de um usuário ou organização e o nome de um repositório separados por `/`.

repo_type (`str`, *opcional*) : Defina como `"dataset"`, `"space"` ou `"kernel"` se estiver listando de um repositório de dataset, space ou kernel, `None` ou `"model"` se estiver listando de um modelo. O padrão é `None`.

revision (`str`, *opcional*) : Um id de revisão Git opcional, que pode ser um nome de branch, uma tag ou um hash de commit. O padrão é a branch padrão. Os nomes de branch/tag são resolvidos para um hash de commit usando o cache local (`refs/`).

cache_dir (`str`, `Path`, *opcional*) : Caminho para a pasta onde os arquivos em cache são armazenados. O padrão é o valor de `HF_HUB_CACHE`.

local_dir (`str` ou `Path`, *opcional*) : Se fornecido, lê a listagem da árvore em cache feita por um download de `local_dir` (de `local_dir/.cache/huggingface/`) em vez do cache principal. As revisões de branch/tag ainda são resolvidas para um hash de commit usando o cache principal (`cache_dir`).

**Retorna:** `list[RepoFile]`

A lista de objetos [RepoFile](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.RepoFile) em cache para esta revisão.

**Exceções:** [CachedRepoTreeNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.CachedRepoTreeNotFoundError)

- [CachedRepoTreeNotFoundError](/docs/huggingface_hub/v2.4.0/pt/package_reference/utilities#huggingface_hub.errors.CachedRepoTreeNotFoundError) -- Se não houver uma listagem de árvore em cache para a revisão solicitada (por exemplo, o repositório nunca foi baixado nessa revisão).

Retorna a listagem em cache de um repositório em uma revisão específica, sem nenhuma chamada de rede.

A listagem da árvore é o conjunto de arquivos (com seus metadados de download) de um repositório em um commit. Ela é preenchida no disco como efeito colateral de [snapshot_download()](/docs/huggingface_hub/v2.4.0/pt/package_reference/file_download#huggingface_hub.snapshot_download) (veja os arquivos de cache `trees/<commit_hash>.json`) e é usada para evitar chamadas de rede em downloads subsequentes. Esta função expõe diretamente esse cache.

Se você precisar da listagem atual da árvore de um repositório no Hub, use [list_repo_tree()](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.HfApi.list_repo_tree) em vez disso.

Exemplo:
```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 uma revisão

Resolva um nome de branch/tag para um hash de commit uma única vez e, em seguida, passe o resultado para fixar todos os downloads no mesmo commit. Consulte [HfApi.resolve_revision()](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision) e o [guia do sistema de cache](../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)
```

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

**Parâmetros:**

initial (`str` ou `None`) : A revisão inicialmente solicitada pelo usuário. Se `None`, o valor da string padrão é `"main"`.

resolved (`str`) : O hash do commit para o qual `initial` resolve.

Uma revisão do git que já foi resolvida para um hash de commit.

`ResolvedRevision` é uma subclasse de `str`, portanto, pode ser passada a qualquer método do `huggingface_hub` que aceite um argumento `revision`. Seu valor de string é a revisão inicialmente solicitada pelo usuário (por exemplo, `"main"`, `"refs/pr/4"`), o que mantém as URLs e as mensagens de erro legíveis, enquanto `.resolved` contém o hash do commit para o qual ela aponta.

As instâncias são construídas por [HfApi.resolve_revision()](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision), que também faz o cache do mapeamento `revision` -> `commit hash` no cache local (pasta `refs/`).

Um hash de commit só tem significado para o repositório em que foi resolvido, portanto, uma instância também memoriza esse repositório. Resolver novamente para outro repositório não é um erro: a revisão inicialmente solicitada é resolvida novamente (veja [HfApi.resolve_revision()](/docs/huggingface_hub/v2.4.0/pt/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision)).

Exemplo:
```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'
```

## Obter metadados sobre um arquivo

### 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)
```

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

**Parâmetros:**

url (`str`) : URL do arquivo, por exemplo, retornada por [hf_hub_url()](/docs/huggingface_hub/v2.4.0/pt/package_reference/file_download#huggingface_hub.hf_hub_url).

token (`str` ou `bool`, *opcional*) : Um token a ser usado para o download. - Se `True`, o token é lido da pasta de configuração do HuggingFace. - Se `False` ou `None`, nenhum token é fornecido. - Se for uma string, ela é usada como token de autenticação.

timeout (`float`, *opcional*, padrão 10) : Quantos segundos esperar o servidor enviar metadados antes de desistir.

library_name (`str`, *opcional*) : O nome da biblioteca à qual o objeto corresponde.

library_version (`str`, *opcional*) : A versão da biblioteca.

user_agent (`dict`, `str`, *opcional*) : As informações do user-agent na forma de um dicionário ou uma string.

headers (`dict`, *opcional*) : Cabeçalhos adicionais a serem enviados com a solicitação.

endpoint (`str`, *opcional*) : Endpoint do Hub. Padrão é .

retry_on_errors (`bool`, *opcional*, padrão `False`) : Se deve tentar novamente em caso de erros (429, 5xx, timeout, erros de rede). Se False, não há nova tentativa, permitindo um retorno rápido para o cache local.

**Retorna:**

Um objeto [HfFileMetadata](/docs/huggingface_hub/v2.4.0/pt/package_reference/file_download#huggingface_hub.HfFileMetadata) contendo metadados, como localização, etag, tamanho e commit_hash.

Obtém os metadados de um arquivo versionado no Hub para uma URL fornecida.

### 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)
```

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

**Parâmetros:**

commit_hash (`str`, *opcional*) : O commit_hash relacionado ao arquivo.

etag (`str`, *opcional*) : Etag do arquivo no servidor.

location (`str`) : Local para onde o arquivo será baixado. Pode ser uma URL do Hub ou não (CDN).

size (`size`) : Tamanho do arquivo. No caso de um arquivo LFS, contém o tamanho do arquivo LFS real, não o do ponteiro.

xet_file_data (`XetFileData`, *opcional*) : Informações do Xet para o arquivo. Isso é definido apenas se o arquivo for armazenado usando o armazenamento Xet.

Estrutura de dados contendo informações sobre um arquivo versionado no Hub.

Retornado por [get_hf_file_metadata()](/docs/huggingface_hub/v2.4.0/pt/package_reference/file_download#huggingface_hub.get_hf_file_metadata) com base em uma URL.

## Cache

Os métodos exibidos acima foram projetados para funcionar com um sistema de cache que impede o re-download de arquivos. O sistema de cache foi atualizado na v0.8.0 para se tornar o sistema de cache central compartilhado entre as bibliotecas que dependem do Hub.

Leia o [guia do sistema de cache](../guides/manage-cache) para uma apresentação detalhada do cache na HF.

