Загрузка и раздача статических файлов#

Вы можете загружать и раздавать статические файлы в Angie ADC с помощью HTTP-запросов через REST API. REST API предоставляет конечную точку (POST /file/static), через которую можно загружать файлы. При загрузке файлов через REST API их путь указывается относительно статической директории. Это позволяет автоматизировать процесс и легко управлять статическими ресурсами, которые должен раздавать Angie ADC.

Поддерживается:

  • загрузка нескольких файлов за один запрос;

  • возможность замены существующих файлов;

  • текстовые и двоичные данные (обычный текст или кодирование Base64).

Загрузка статических файлов#

Для загрузки статических файлов используйте следующий запрос:

POST /file/static HTTP/1.1
Authorization: Bearer <token>

{
  "items": [
    {
        "filepath": "path/to/file",  # расположение файла относительно статической директории (static dir), которая будет определена позднее
        "content": {
            "plain-text": "zone \"test.example.com.\" {\n    type master\n    file \"/etc/bind/master-zones/test.example.com.local.zone\"\n}\n"
        },
        "rewrite": true
    },
    {
        "filepath": "path/to/file",  # расположение файла относительно статической директории (static dir), которая будет определена позднее
        "content": {
            "plain-text": "zone \"test.example.com.\" {\n    type master\n    file \"/etc/bind/master-zones/test.example.com.local.zone\"\n}\n"
        },
        "rewrite": false
    }
  ]
}

После успешной обработки файлы загрузятся в static dir в указанное относительное расположение (filepath). API вернет абсолютные пути к загруженным файлам в HTTP Response Body:

{
    "items": [
        "/path/to/file/one",
        "/path/to/file/two",
        "/path/to/file/three"
    ]
}

Важно

Все файлы загружаются вместе: если с одним из файлов возникнет ошибка, загрузка всех файлов будет отменена.

Возможные ошибки обработки:

  • некорректный запрос: Код состояния HTTP 400;

  • ошибка записи файла: Код состояния HTTP 500;

  • если в static dir/filepath уже есть соответствующий файл, а параметр rewrite установлен в false, загрузка завершится ошибкой: Код состояния HTTP 400.

Раздача статических файлов через балансировщик нагрузки#

Чтобы раздавать загруженные файлы через балансировщик нагрузки, необходимо задать location в конфигурационном файле балансировщика нагрузки.

  1. Откройте в браузере консоль Angie ADC.

  2. Перейдите в Панель мониторинга<Имя балансировщика>Конфигурация.

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

  3. Внесите изменения с учетом загруженных статических файлов, например:

    location ~ \.(mp3|mp4) {
        root /static/dir/file;
    }
    
  4. Сохраните конфигурацию, нажав кнопку Сохранить.

    Изменения будут применены сразу.

Загрузка и раздача двоичных данных#

Двоичные данные передаются в объекте content.plain-text без преобразований. Также можно использовать кодирование Base64. Значение base64 должно содержать закодированные данные файла. Файлы, загруженные таким способом, также можно раздавать через балансировщик нагрузки.

Пример загрузки файла в base64:

POST /file/static HTTP/1.1
Authorization: Bearer <token>

{
  "items": [
    {
        "filepath": "path/to/file",  # расположение файла относительно статической директории (static dir), которая будет определена позднее
        "content": {
            "base64": "em9uZSBcInRlc3QuZXhhbXBsZS5jb20uXCIge1xuICAgIHR5cGUgbWFzdGVyXG4gICAgZmlsZSBcIi9ldGMvYmluZC9tYXN0ZXItem9uZXMvdGVzdC5leGFtcGxlLmNvbS5sb2NhbC56b25lXCJcbn1cbg=="
        },
        "rewrite": true
    }
  ]
}