Хранилище файлов

Aulynk поддерживает два режима хранения загруженных файлов: локальную файловую систему и S3-совместимое объектное хранилище.

Локальное хранилище

По умолчанию файлы сохраняются в каталог, указанный в uploads.dir. Параметр max_size_mb ограничивает максимальный размер одного файла.

uploads:
  dir: "../uploads"
  max_size_mb: 50

Убедитесь, что у процесса Aulynk есть права на запись в указанный каталог.

S3-совместимое хранилище

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

uploads:
  dir: "../uploads"
  max_size_mb: 50
  s3:
    bucket: "aulynk-files"
    prefix: "uploads"
    endpoint: "s3.amazonaws.com"
    region: "us-east-1"
    accessKeyId: "AKIAIOSFODNN7EXAMPLE"
    secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLE"

Параметры S3

ПараметрОписание
bucketИмя бакета
prefixПрефикс ключей внутри бакета (например, uploads)
endpointАдрес S3 API
regionРегион бакета
accessKeyIdКлюч доступа
secretAccessKeyСекретный ключ

Примеры конфигурации

Yandex Cloud Object Storage

uploads:
  dir: "../uploads"
  max_size_mb: 100
  s3:
    bucket: "my-aulynk"
    prefix: "files"
    endpoint: "storage.yandexcloud.net"
    region: "ru-central1"
    accessKeyId: "YCAJExxxxxxxxxx"
    secretAccessKey: "YCxxxxxxxxxxxxxxxxxx"

AWS S3

uploads:
  dir: "../uploads"
  max_size_mb: 100
  s3:
    bucket: "aulynk-production"
    prefix: "uploads"
    endpoint: "s3.amazonaws.com"
    region: "eu-west-1"
    accessKeyId: "AKIA..."
    secretAccessKey: "..."

Beget S3

uploads:
  dir: "../uploads"
  max_size_mb: 50
  s3:
    bucket: "aulynk"
    prefix: "uploads"
    endpoint: "s3.beget.com"
    region: "ru-1"
    accessKeyId: "..."
    secretAccessKey: "..."

Миграция между локальным и S3

Переключение между режимами хранения доступно через админ-панель:

  1. Откройте Админ-панель > Файлы.
  2. Убедитесь, что S3-конфигурация заполнена в config.yaml.
  3. Выполните миграцию -- существующие файлы будут скопированы в новое хранилище.
  4. После завершения миграции новые файлы будут загружаться в S3.

При обратной миграции (S3 -> локальное) файлы скачиваются из бакета в локальный каталог. Рекомендуется проверить наличие достаточного дискового пространства перед началом.