# Загрузка файла в развертывание

{% hint style="info" %}
Эта функция в настоящее время доступна только через [API](https://docs.edgegap.com/ru/docs/api).
{% endhint %}

Возможно загрузить файлы из вашего S3-бакета в развертывание. Поскольку файлы загружаются только при создании развертывания, вы можете изменять файлы в бакете и увидеть изменения в следующем создаваемом развертывании.

### Профили загрузки

Профили загрузки определяют, какие файлы или папки должны быть загружены из вашего S3-бакета и куда они будут сохранены в развертывании.

Перед созданием профиля загрузки убедитесь, что у вас есть как минимум один [Endpoint Storage](https://docs.edgegap.com/ru/docs/endpoint-storage) настроен.

Затем вы захотите создать профиль загрузки в этом бакете, указав следующую информацию:

* Опция **name** имя профиля загрузки: оно будет использоваться для связывания профиля загрузки с версиями вашего приложения позже, поэтому оно должно быть уникальным и описательным.
* Опция **источник** путь: Путь к файлу или папке в вашем S3-бакете. Он должен начинаться со слэша, а корнем считается корень вашего бакета.
* Опция **тип\_источника**: Это может быть либо "file" (файл), либо "folder" (папка), и оно должно быть правильно установлено, чтобы загрузка прошла успешно.
* Опция **назначение** путь: Путь в вашем развертывании, куда будет сохранён файл или папка. Он должен начинаться со слэша, а корнем считается корень образа вашего контейнера.

{% hint style="warning" %}
Следите за тем, чтобы не указывать защищённые назначения, такие как `/etc/`, так как это помешает копированию файлов в ваше развертывание и приведёт к сбою развертывания. Убедитесь, что обычный пользователь имеет права на запись в папку назначения.
{% endhint %}

Например, если вы хотите скопировать файл `some-file.txt`из вашего бакета в папку `custom-folder` в развертывании, при условии, что структуры файлов выглядят следующим образом:

```
s3://my-bucket/
├─ some-folder/
│  ├─ some-file.txt
├─ some-other-folder/
│  ├─ some-other-file.jpg
```

```
/
├─ app/
│  ├─ entrypoint.sh
│  ├─ custom-folder/

```

Вы бы создали профиль загрузки со следующей информацией:

```json
{
  "name": "some-file-pull-profile",
  "source": "/some-folder/some-file.txt",
  "source_type": "file",
  "destination": "/app/custom-folder/"
}
```

Для получения дополнительных сведений, [см. документацию API](https://docs.edgegap.com/ru/docs/api).

### Связывание профиля загрузки с версией приложения

После создания профиля загрузки вы должны связать с ним версию приложения, чтобы файлы загружались при создании развертывания. Таким образом вы можете использовать несколько профилей загрузки для одной версии приложения и повторно использовать профили загрузки между версиями.

[См. документацию API](https://docs.edgegap.com/ru/docs/api)

### Ограничения

Общий размер файлов, загружаемых в развертывание, не может превышать 5 МБ.

Если этот лимит будет достигнут, вы получите уведомление во время развертывания, чтобы вы могли оперативно устранить проблему.
