architect/_archive/_s3-nomenclature/README.md

S3 Хранилище номенклатуры

Назначение: Централизованное облачное хранилище для обмена данными между системами
Провайдер: Beget S3
Домен: s3.0kt.ru
Дата создания: 2025-11-18


Описание

S3 хранилище nomenclature/ используется как единая точка для обмена данными о номенклатуре между:
- Сайтом pirotehnika.spb.ru (OpenCart)
- 1С:Предприятие
- Внешними системами (маркетплейсы, прайс-листы)


Конфигурация

Bucket

Домен

Доступ


Структура папки nomenclature/

s3://fe2c1d30dc11-s3-0kt/nomenclature/

├── images/                         # Изображения товаров
   ├── premier_*.jpg              (Premier Salut - 226 файлов)
   ├── maxsem_*.jpg               (Maxsem - планируется)
   ├── supersalut_*.jpg           (Супер Салют - планируется)
   └── images_index.xlsx          (индексный файл)

├── catalogs/                       # Каталоги и прайс-листы
   ├── products_full.xlsx         (полный каталог)
   ├── products_prices.csv        (только цены)
   └── manufacturers.json         (производители)

├── 1c_exchange/                    # Обмен с 1С
   ├── import/                    (загрузка ИЗ 1С)
      ├── products.xml           (товары CommerceML)
      ├── prices.xml             (цены)
      ├── stock.xml              (остатки)
      └── images.zip             (архив изображений)
   
   └── export/                    (выгрузка В 1С)
       ├── orders.xml             (заказы)
       ├── payments.xml           (оплаты)
       └── returns.xml            (возвраты)

├── marketplace/                    # Маркетплейсы
   ├── ozon/
      ├── feed.xml               (фид для Озон)
      └── images/                (изображения для Озон)
   
   └── yandex/
       └── feed.yml               (YML для Яндекс.Маркет)

├── incoming/                       # Входящие файлы
   └── [временные файлы загрузки]

├── outgoing/                       # Исходящие файлы
   └── [файлы для скачивания]

└── archive/                        # Архивы
    ├── backup_2025-11-18.tar.gz
    └── old_images_2025-11-14.tar.gz

URL доступа

Через Beget (прямой)

https://s3.ru1.storage.beget.cloud/fe2c1d30dc11-s3-0kt/nomenclature/{path}

Через кастомный домен

https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/{path}

Примеры

# Изображение товара
https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/images/premier_01001.jpg

# Каталог товаров
https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/catalogs/products_full.xlsx

# Файл для 1С
https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/1c_exchange/import/products.xml

Использование

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

Через s3cmd:

s3cmd put local_file.jpg s3://fe2c1d30dc11-s3-0kt/nomenclature/images/

Через Python (boto3):

import boto3

s3 = boto3.client('s3',
    endpoint_url='https://s3.ru1.storage.beget.cloud',
    aws_access_key_id='F1AIVIQI0DE3PJGIWQC1',
    aws_secret_access_key='SECRET_KEY'
)

s3.upload_file('local_file.jpg',
               'fe2c1d30dc11-s3-0kt',
               'nomenclature/images/product.jpg')

Скачивание файлов

Через curl:

curl -o product.jpg https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/images/premier_01001.jpg

Через wget:

wget https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/images/premier_01001.jpg

Интеграция с 1С

1. Загрузка товаров ИЗ 1С:

// 1С выгружает products.xml в S3
HTTPЗапрос.ОтправитьДляОбработки(
    "https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/1c_exchange/import/products.xml",
    ФайлXML
);

2. Получение заказов В 1С:

// 1С читает orders.xml из S3
ФайлЗаказов = ПолучитьИнтернетФайл(
    "https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/1c_exchange/export/orders.xml"
);

Интеграция с OpenCart

Использование изображений:

<?php
// config.php
define('S3_BASE_URL', 'https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/');

// В шаблоне
$image_url = S3_BASE_URL . 'images/' . $product['image'];
?>
<img src="<?php echo $image_url; ?>" alt="<?php echo $product['name']; ?>">

Настройка публичного доступа

Через панель Beget

  1. Вход: https://cp.beget.com/
  2. Раздел: S3-хранилище
  3. Bucket: fe2c1d30dc11-s3-0kt
  4. Политики: Bucket Policy

Добавить политику:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadNomenclature",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::fe2c1d30dc11-s3-0kt/nomenclature/*"
    }
  ]
}

Проверка доступа

curl -I https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/images/premier_01001.jpg

Ожидаемый результат: HTTP 200 OK


Текущий статус


Ссылки


Создано: 2025-11-18
Обновлено: 2025-11-18
Ответственный: Системный администратор