1С СЕРВЕР ВЗАИМОДЕЙСТВИЯ. ОБМЕН ФАЙЛАМИ ЧЕРЕЗ AMAZON S3
Эта статья предполагает, что сервер взаимодействия уже установлен и работает. Если ещё нет — начните с обзора и выбора способа установки: сервер взаимодействия 1С: что это и как установить (там же — Docker и Ubuntu Server).
Настройка облака Amazon S3
Создать backet
Получить ключи доступа: в консоли AWS откройте IAM → Users → создайте пользователя с программным доступом (Programmatic access), прикрепите политику с правами на нужный бакет (например, AmazonS3FullAccess или более узкую политику только на этот бакет) — AWS выдаст Access Key ID и Secret Access Key. Секретный ключ показывается один раз, сохраните его сразу.
Настроить CORS
https://console.aws.amazon.com/s3/buckets/nizamov-school-bucket/?region=eu-west-1
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [] }
]
Настройка сервера взаимодействия 1С
Подготовить скрипт заполнив его данными своего backet, региона и ключами доступа.
INSERT INTO public.storage_server(id, type, base_url, container_url, container_name, region, access_key_id, secret_key, signature_version, is_deleted, upload_limit, download_limit, file_size_limit, created_at, updated_at, cdn_url, cdn_key_id, cdn_secret_key, state, cdn_enabled, path_style_access_enabled, bytes_to_keep, days_to_keep, pricing_url)
VALUES(
uuid_generate_v4(), 'AMAZON', 'https://s3.amazonaws.com','https://${container_name}.s3.${region}.amazonaws.com',
'nizamov-school-bucket',
'eu-west-1',
'YOUR_ACCESS_KEY_ID',
'YOUR_SECRET_ACCESS_KEY',
'V4', false, 1073741824, 1073741824, 104857600, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, NULL, 'ACTIVE', false, true, 0, 0, NULL);
Открыть pgAdmin. При необходимости почистить таблицу storage_server.
Запустить QueryTools и выполнить скрипт
Обмен через S3-совместимые российские альтернативы
С 2022 года доступность и удобство работы с Amazon для российской аудитории 1С снижается. Конфигурация сервера взаимодействия при этом почти не меняется — большинство российских объектных хранилищ совместимы с S3 API, отличаются в основном base_url и container_url в том же SQL-скрипте:
- Yandex Object Storage — эндпоинт вида https://storage.yandexcloud.net, ключи доступа выдаются в консоли Yandex Cloud (сервисный аккаунт → статический ключ доступа).
- VK Cloud S3 — свой эндпоинт и ключи выдаются в личном кабинете VK Cloud, тип хранилища в скрипте укажите как S3-совместимый, а не AMAZON.
- Selectel S3 — аналогично, эндпоинт и ключи из панели управления Selectel.
Для всех трёх сути настройки CORS и структуры SQL-скрипта из этой статьи остаются теми же — меняются только URL и ключи.
Типичная ошибка: CORS
Если файлы не загружаются в бакет, а в консоли браузера видна ошибка CORS — проверьте, что AllowedMethods в конфигурации CORS бакета включает PUT, POST и DELETE (см. конфиг выше), а AllowedOrigins разрешает домен, с которого идёт запрос. После правки CORS в консоли AWS/облака изменения применяются не сразу — обычно нужно подождать несколько минут.