# Загрузка файлов

## Загрузка одного файла

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

[Источник](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/file_download.py#L855)

**Параметры:**

repo_id (`str`) : Имя пользователя или организации и имя репозитория, разделённые символом `/`.

filename (`str`) : имя файла в репозитории.

subfolder (`str`, *необязательный*) : Необязательное значение, соответствующее папке внутри репозитория модели.

repo_type (`str`, *необязательный*) : Установите `"dataset"`, `"space"` или `"kernel"`, если загрузка выполняется из репозитория датасета, пространства или ядра; `None` или `"model"`, если из репозитория модели. По умолчанию — `None`.

revision (`str`, *необязательный*) : Необязательный идентификатор ревизии Git, который может быть именем ветки, тегом или хэшем коммита.

library_name (`str`, *необязательный*) : Название библиотеки, которой соответствует объект.

library_version (`str`, *необязательный*) : Версия библиотеки.

cache_dir (`str`, `Path`, *необязательный*) : Путь к папке, в которой хранятся кэшированные файлы.

local_dir (`str` или `Path`, *необязательный*) : Если указано, загруженный файл будет размещён в этой директории.

user_agent (`dict`, `str`, *optional*) : Информация о user-agent в виде словаря или строки.

force_download (`bool`, *необязательный*, по умолчанию `False`) : Следует ли скачать файл, даже если он уже есть в локальном кэше.

etag_timeout (`float`, *необязательный*, по умолчанию `10`) : При получении ETag — сколько секунд ждать отправки данных сервером, прежде чем прервать ожидание; значение передаётся в `httpx2.request`.

token (`str`, `bool`, *optional*) : Токен, используемый для загрузки. - Если `True`, токен читается из папки конфигурации HuggingFace. - Если это строка, она используется в качестве токена аутентификации.

local_files_only (`bool`, *необязательный*, по умолчанию `False`) : Если `True`, не скачивать файл, а вернуть путь к локальному кэшированному файлу, если он существует.

headers (`dict`, *необязательный*) : Дополнительные заголовки, которые будут отправлены вместе с запросом.

endpoint (`str`, *необязательный*) : Конечная точка Hub, на которую отправляется запрос. По умолчанию используется значение `HF_ENDPOINT`.

tqdm_class (`tqdm`, *необязательный*) : Если указан, переопределяет поведение полосы прогресса по умолчанию. Передаваемый аргумент должен наследоваться от `tqdm.auto.tqdm` или как минимум имитировать его поведение. По умолчанию используется собственная полоса прогресса HF, которую можно отключить, установив переменную окружения `HF_HUB_DISABLE_PROGRESS_BARS`.

dry_run (`bool`, *необязательный*, по умолчанию `False`) : Если `True`, выполняется тестовый прогон без фактической загрузки файла. Возвращает объект [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.DryRunFileInfo), содержащий информацию о том, что было бы загружено.

**Возвращает:** `str` или [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.DryRunFileInfo)

- Если `dry_run=False`: локальный путь к файлу или, если сеть отключена, последняя версия файла, кэшированная на диске.
- Если `dry_run=True`: объект [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.DryRunFileInfo), содержащий информацию о загрузке.

**Исключения:** [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) или [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) или `~utils.RemoteEntryNotFoundError` или [LocalEntryNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.LocalEntryNotFoundError) или ``EnvironmentError`` или ``OSError`` или ``ValueError``

- [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) --  Если репозиторий, из которого выполняется загрузка, не найден. Это может быть связано с тем, что он не существует, либо с тем, что он установлен как `private`, и у вас нет к нему доступа.
- [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) -- если не удалось найти ревизию для загрузки.
- `~utils.RemoteEntryNotFoundError` -- Если файл для загрузки не найден.
- [LocalEntryNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.LocalEntryNotFoundError) -- Если сеть отключена или недоступна, а файл не найден в кэше.
- [`EnvironmentError`](https://docs.python.org/3/library/exceptions.html#EnvironmentError) -- если `token=True`, но токен не найден.
- [`OSError`](https://docs.python.org/3/library/exceptions.html#OSError) -- если не удалось определить ETag.
- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- если значение какого-либо параметра некорректно.

Загрузите указанный файл, если он ещё отсутствует в локальном кэше.

Новая структура кэшируемых файлов выглядит так:
- Каталог кэша содержит одну подпапку для каждого repo_id (с разделением по типу репозитория)
- внутри каждой папки репозитория:
  - refs — это список последних известных пар ревизия => commit_hash
  - blobs содержит фактические файлы (идентифицируются по git-sha или sha256, в зависимости от того, являются ли они файлами LFS или нет)
  - snapshots содержит одну подпапку на каждый коммит, каждый «коммит» содержит подмножество файлов, которые были разрешены на данном конкретном коммите. Имя каждого файла является символьной ссылкой на blob на данном конкретном коммите.

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

Если указан `local_dir`, структура файлов из репозитория будет воспроизведена в этом месте. При использовании этого параметра `cache_dir` не используется, а в корне `local_dir` создаётся папка `.cache/huggingface/` для хранения метаданных, связанных с загруженными файлами. Хотя этот механизм менее надёжен, чем основная система кэширования, он оптимизирован для регулярного получения последней версии репозитория.

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

[Источник](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/file_download.py#L210)

**Параметры:**

repo_id (`str`) : Имя пространства имён (пользователя или организации) и имя репозитория, разделённые символом `/`.

filename (`str`) : имя файла в репозитории.

subfolder (`str`, *необязательный*) : Необязательное значение, соответствующее папке внутри репозитория.

repo_type (`str`, *необязательный*) : Установите `"dataset"`, `"space"` или `"kernel"`, если загрузка выполняется из репозитория датасета, пространства или ядра; `None` или `"model"`, если из репозитория модели. По умолчанию — `None`.

revision (`str`, *необязательный*) : Необязательный идентификатор ревизии Git, который может быть именем ветки, тегом или хэшем коммита.

endpoint (`str`, *необязательный*) : Конечная точка Hub, на которую отправляется запрос. По умолчанию используется значение `HF_ENDPOINT`.

Сформируйте URL файла на основе предоставленной информации.

Разрешённый адрес может быть как URL, размещённым на huggingface.co, так и ссылкой на Cloudfront (сеть доставки контента, или CDN) для больших файлов размером более нескольких МБ.

Пример:

```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]
> Примечания:
>
> Cloudfront дублируется по всему миру, поэтому загрузка для конечного пользователя значительно быстрее (а также это снижает наши затраты на пропускную способность).
>
> Cloudfront по умолчанию агрессивно кэширует файлы (TTL по умолчанию составляет 24 часа), однако в данном случае это не проблема, так как на huggingface.co мы реализуем систему версионирования на основе git, что означает, что файлы хранятся в S3/Cloudfront с адресацией по содержимому (то есть имя файла является его хэшем). Использование имен файлов с адресацией по содержимому гарантирует, что кэш никогда не будет устаревшим.
>
> Что касается кэширования на стороне клиента в этой библиотеке, мы основываем наше кэширование на метке сущности объекта (`ETag`), которая является идентификатором конкретной версии ресурса [1]_. ETag объекта представляет собой: его git-sha1, если он хранится в git, или его sha256, если он хранится в git-lfs.

Ссылки:

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

## Скачать снимок репозитория[[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)
```

[Источник](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_snapshot_download.py#L121)

**Параметры:**

repo_id (`str`) : Имя пользователя или организации и имя репозитория, разделённые символом `/`.

repo_type (`str`, *необязательный*) : Установите `"dataset"`, `"space"` или `"kernel"`, если загрузка выполняется из репозитория датасета, пространства или ядра; `None` или `"model"`, если из репозитория модели. По умолчанию — `None`.

revision (`str`, *необязательный*) : Необязательный идентификатор ревизии Git, который может быть именем ветки, тегом или хэшем коммита.

cache_dir (`str`, `Path`, *необязательный*) : Путь к папке, в которой хранятся кэшированные файлы.

local_dir (`str` или `Path`, *необязательный*) : Если указано, загруженные файлы будут размещены в этой директории.

library_name (`str`, *необязательный*) : Название библиотеки, которой соответствует объект.

library_version (`str`, *необязательный*) : Версия библиотеки.

user_agent (`str`, `dict`, *необязательный*) : Информация о user-agent в виде словаря или строки.

etag_timeout (`float`, *необязательный*, по умолчанию `10`) : При получении ETag — сколько секунд ждать отправки данных сервером, прежде чем прервать ожидание; значение передаётся в `httpx2.request`.

force_download (`bool`, *необязательный*, по умолчанию `False`) : Следует ли скачать файл, даже если он уже есть в локальном кэше.

token (`str`, `bool`, *optional*) : Токен, используемый для загрузки. - Если `True`, токен читается из папки конфигурации HuggingFace. - Если это строка, она используется в качестве токена аутентификации.

headers (`dict`, *необязательный*) : Дополнительные заголовки, которые нужно включить в запрос. Эти заголовки имеют приоритет над остальными.

endpoint (`str`, *необязательный*) : Конечная точка Hub, на которую отправляется запрос. По умолчанию используется значение `HF_ENDPOINT`.

local_files_only (`bool`, *необязательный*, по умолчанию `False`) : Если `True`, не загружать файлы, даже если их нет в `cache_dir` или `local_dir`.

allow_patterns (`list[str]` или `str`, *необязательный*) : Если указано, загружаются только файлы, соответствующие хотя бы одному шаблону.

ignore_patterns (`list[str]` или `str`, *необязательный*) : Если указано, файлы, соответствующие любому из шаблонов, не будут загружены.

max_workers (`int`, *optional*) : Количество параллельных потоков для загрузки файлов (1 поток = 1 файл). По умолчанию: 8.

tqdm_class (`tqdm`, *необязательный*) : Если указан, переопределяет поведение полосы прогресса по умолчанию. Передаваемый аргумент должен наследоваться от `tqdm.auto.tqdm` или как минимум имитировать его поведение. Обратите внимание, что `tqdm_class` не передается для каждой отдельной загрузки. По умолчанию используется собственная полоса прогресса HF, которую можно отключить, установив переменную окружения `HF_HUB_DISABLE_PROGRESS_BARS`.

dry_run (`bool`, *необязательный*, по умолчанию `False`) : Если `True`, выполняется тестовый прогон без фактической загрузки файлов. Возвращает список объектов [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.DryRunFileInfo), содержащих информацию о том, какие файлы были бы загружены.

**Возвращает:** `str` или список [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.DryRunFileInfo)

- Если `dry_run=False`: локальный путь к снимку.
- Если `dry_run=True`: список объектов [DryRunFileInfo](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.DryRunFileInfo) с информацией о загрузке.

**Исключения:** [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) или [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) или [IncompleteSnapshotError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.IncompleteSnapshotError) или ``EnvironmentError`` или ``OSError`` или ``ValueError``

- [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) --  Если репозиторий, из которого выполняется загрузка, не найден. Это может быть связано с тем, что он не существует или установлен как `private`, и у вас нет к нему доступа.
- [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) -- если не удалось найти ревизию для загрузки.
- [IncompleteSnapshotError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.IncompleteSnapshotError) -- возникает, если к Hub нет доступа (офлайн, проблема с подключением или `local_files_only=True`), а в кэшированном снимке отсутствуют некоторые из запрошенных файлов.
- [`EnvironmentError`](https://docs.python.org/3/library/exceptions.html#EnvironmentError) -- если `token=True` и токен не найден.
- [`OSError`](https://docs.python.org/3/library/exceptions.html#OSError) -- если ETag не может быть определен.
- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- если значение какого-либо параметра некорректно.

Скачайте файлы репозитория.

Скачайте полный снимок файлов репозитория с указанной ревизией. Это полезно, когда вам нужны все файлы из репозитория, потому что вы не знаете заранее, какие именно из них понадобятся _a priori_. Все файлы помещаются в папку, чтобы сохранить их путь и имя файла относительно этой папки. Вы также можете отфильтровать файлы для скачивания с помощью `allow_patterns` и `ignore_patterns`.

Если указан `local_dir`, структура файлов из репозитория будет воспроизведена в этом месте. При использовании этого параметра `cache_dir` не используется, а в корне `local_dir` создаётся папка `.cache/huggingface/` для хранения метаданных, связанных с загруженными файлами. Хотя этот механизм менее надёжен, чем основная система кэширования, он оптимизирован для регулярного получения последней версии репозитория.

Альтернативный вариант — клонировать репозиторий, но для этого необходимо установить и правильно настроить git и git-lfs. Кроме того, при клонировании репозитория с помощью git невозможно отфильтровать, какие именно файлы нужно скачать.

## Чтение кэшированного дерева репозитория[[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)
```

[Источник](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_snapshot_download.py#L603)

**Параметры:**

repo_id (`str`) : Имя пользователя или организации и имя репозитория, разделённые символом `/`.

repo_type (`str`, *необязательный*) : Установите `"dataset"`, `"space"` или `"kernel"`, если вы получаете список из репозитория датасета, пространства или ядра; `None` или `"model"`, если из репозитория модели. По умолчанию `None`.

revision (`str`, *необязательный*) : Необязательный идентификатор ревизии Git, который может быть именем ветки, тегом или хэшем коммита. По умолчанию используется ветка по умолчанию. Имена веток/тегов разрешаются в хэш коммита с использованием локального кэша (`refs/`).

cache_dir (`str`, `Path`, *необязательный*) : Путь к папке, в которой хранятся кэшированные файлы. По умолчанию используется значение `HF_HUB_CACHE`.

local_dir (`str` или `Path`, *необязательный*) : Если указано, читать список дерева, кэшированный при загрузке в `local_dir` (из `local_dir/.cache/huggingface/`), вместо основного кэша. Ревизии веток/тегов по-прежнему разрешаются в хэш коммита с использованием основного кэша (`cache_dir`).

**Возвращает:** `list[RepoFile]`

Список объектов [RepoFile](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.RepoFile), закэшированных для этой ревизии.

**Исключения:** [CachedRepoTreeNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.CachedRepoTreeNotFoundError)

- [CachedRepoTreeNotFoundError](/docs/huggingface_hub/v2.4.0/ru/package_reference/utilities#huggingface_hub.errors.CachedRepoTreeNotFoundError) -- Если для запрошенной ревизии не кэширован список дерева (например, репозиторий никогда не скачивался в этой ревизии).

Возвращает кэшированный список файлов репозитория для указанной ревизии без обращения к сети.

Список дерева представляет собой набор файлов (с метаданными для загрузки) репозитория на определённом коммите. Он формируется на диске как побочный эффект вызова [snapshot_download()](/docs/huggingface_hub/v2.4.0/ru/package_reference/file_download#huggingface_hub.snapshot_download) (см. файлы кэша `trees/<commit_hash>.json`) и используется для пропуска сетевых запросов при последующих загрузках. Данная функция предоставляет прямой доступ к этому кэшу.

Если вам нужен текущий список файлов в репозитории на Hub, используйте [list_repo_tree()](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.HfApi.list_repo_tree).

Пример:
```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', ...]
```

## Разрешить ревизию

Разрешите имя ветки/тега в хеш коммита один раз, затем передавайте результат, чтобы зафиксировать все загрузки на одном и том же коммите. См. [HfApi.resolve_revision()](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision) и [руководство по системе кэширования](../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)
```

[Источник](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_revision.py#L4)

**Параметры:**

initial (`str` или `None`) : ревизия, изначально запрошенная пользователем. Если `None`, строковое значение по умолчанию равно `"main"`.

resolved (`str`) : Хеш коммита, к которому разрешается `initial`.

Ревизия git, которая уже была разрешена в хеш коммита.

`ResolvedRevision` является подклассом `str`, поэтому его можно передавать в любой метод `huggingface_hub`, принимающий аргумент `revision`. Его строковое значение — это ревизия, изначально запрошенная пользователем (например, `"main"`, `"refs/pr/4"`), что делает URL и сообщения об ошибках читаемыми, тогда как `.resolved` содержит хеш коммита, на который она указывает.

Экземпляры создаются с помощью [HfApi.resolve_revision()](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision), который также кэширует соответствие `revision` -> `commit hash` в локальном кэше (папка `refs/`).

Хеш коммита имеет значение только для того репозитория, относительно которого он был разрешён, поэтому экземпляр также запоминает этот репозиторий. Повторное разрешение для другого репозитория не является ошибкой: исходно запрошенная ревизия разрешается заново (см. [HfApi.resolve_revision()](/docs/huggingface_hub/v2.4.0/ru/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision)).

Пример:
```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'
```

## Получить метаданные файла

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

[Источник](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/file_download.py#L1617)

**Параметры:**

url (`str`) : URL файла, например, возвращаемый [hf_hub_url()](/docs/huggingface_hub/v2.4.0/ru/package_reference/file_download#huggingface_hub.hf_hub_url).

token (`str` или `bool`, *необязательный*) : Токен, используемый для загрузки. - Если `True`, токен читается из папки конфигурации HuggingFace. - Если `False` или `None`, токен не предоставляется. - Если передана строка, она используется в качестве токена аутентификации.

timeout (`float`, *optional*, по умолчанию 10) : Сколько секунд ждать отправки метаданных сервером, прежде чем прервать ожидание.

library_name (`str`, *необязательный*) : Название библиотеки, которой соответствует объект.

library_version (`str`, *необязательный*) : Версия библиотеки.

user_agent (`dict`, `str`, *optional*) : Информация о user-agent в виде словаря или строки.

headers (`dict`, *необязательный*) : Дополнительные заголовки, которые будут отправлены вместе с запросом.

endpoint (`str`, *необязательный*) : Точка входа в Hub. По умолчанию .

retry_on_errors (`bool`, *необязательный*, по умолчанию `False`) : Повторять ли попытки при ошибках (429, 5xx, таймаут, сетевые ошибки). Если False, повторные попытки не выполняются для быстрого перехода к локальному кэшу.

**Возвращает:**

Объект [HfFileMetadata](/docs/huggingface_hub/v2.4.0/ru/package_reference/file_download#huggingface_hub.HfFileMetadata), содержащий метаданные, такие как расположение, etag, размер и commit_hash.

Получить метаданные файла, версионируемого на Hub, для заданного URL.

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

[Источник](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/file_download.py#L155)

**Параметры:**

commit_hash (`str`, *необязательный*) : commit_hash, связанный с файлом.

etag (`str`, *необязательный*) : Etag файла на сервере.

location (`str`) : Место для загрузки файла. Может быть URL Hub или нет (CDN).

size (`size`) : Размер файла. Для файлов LFS содержит размер фактического файла LFS, а не указателя.

xet_file_data (`XetFileData`, *необязательный*) : Информация Xet для файла. Значение устанавливается только в том случае, если файл хранится в хранилище Xet.

Структура данных, содержащая информацию о версии файла, размещенного на Hub.

Возвращается [get_hf_file_metadata()](/docs/huggingface_hub/v2.4.0/ru/package_reference/file_download#huggingface_hub.get_hf_file_metadata) на основе URL.

## Кэширование

Методы, показанные выше, предназначены для работы с системой кэширования, которая предотвращает повторную загрузку файлов. В версии v0.8.0 система кэширования была обновлена и стала центральной системой кэша, общей для всех библиотек, зависящих от Hub.

Ознакомьтесь с [руководством по системе кэширования](../guides/manage-cache), чтобы получить подробное описание кэширования на HF.

