Ваше сховище · WordPress + WooCommerce
AWS S3 для WooCommerce
Плагін Alter Product містить готовий модуль сховища AWS S3. Зберігайте підтримувані групи файлів плагіна у власному приватному бакеті, підключіть його у WordPress і перенесіть наявні файли засобами плагіна.
Alter Product не стягує додаткової плати за збільшення місткості цього підключеного сховища. AWS виставляє вашому обліковому запису рахунок за зберігання, запити та передавання даних. Витрати на хостинг WordPress і звичайні правила тарифного плану та сеансів вбудовування залишаються чинними.
Інструкція відповідає посібнику з налаштування в плагіні. Назви елементів консолі AWS залишаються англійською.
Зберігання, доставлення файлів і витрати
S3 зберігає файлові об’єкти плагіна. WordPress і надалі відповідає за перевірку прав і доставлення файлів у браузер.
Приватне сховище для плагіна
Браузер не завантажує файли безпосередньо із S3. WordPress отримує й перевіряє файли з приватного бакета, а потім видає їх через власні кінцеві точки. Залиште CORS у S3 порожнім і ввімкніть Block Public Access: це не публічний бакет і не пряме підключення CDN.
Модуль охоплює підтримувані групи файлів Alter Product. Підключення бакета не переносить усі файли WordPress і не змінює ліміти вбудованих інструментів.

Сплачуйте AWS за використані ресурси
Alter Product не стягує додаткової плати за збільшення місткості підключеного бакета. Вартість AWS залежить від використання, регіону та класу зберігання; перевіряйте актуальний прайс-лист S3, а не розраховуйте на фіксовану ставку.
Оскільки файли видає WordPress, цей трафік також може враховуватися хостингом. S3 не означає відсутності трафіку на хостингу чи необмеженої пропускної здатності сервера.
Створіть бакет із підтримуваними налаштуваннями
Наведені нижче назви полів відповідають англомовній консолі AWS та вбудованій інструкції плагіна.
Створіть бакет загального призначення
Увійдіть в AWS, відкрийте Amazon S3 і виберіть General purpose buckets → Create bucket. Виберіть регіон та задайте назву з малих латинських літер, цифр і дефісів, без крапок. Скопіюйте повну назву бакета, включно із суфіксом, доданим AWS.
- Застосуйте налаштування з таблиці та виберіть Create bucket.
- Збережіть повну назву бакета, регіон і 12-значний ідентифікатор облікового запису AWS власника бакета.
- Залиште Cross-origin resource sharing (CORS) порожнім. Запити до S3 надсилає сервер WordPress.
| Поле AWS | Налаштування |
|---|---|
| Bucket type | General purpose |
| Bucket namespace | Account Regional namespace (рекомендовано) |
| Object Ownership | ACLs disabled / Bucket owner enforced |
| Block Public Access | Block all public access (усі чотири налаштування) |
| Bucket Versioning | Enable |
| Default encryption | Server-side encryption with Amazon S3 managed keys (SSE-S3 / AES256) |
| Bucket Key | Disable |
| Advanced settings → Object Lock | Disable |
Зробіть HTTPS обов’язковим
Додайте правило транспорту, не відкриваючи публічний доступ до бакета й не надаючи доступ до об’єктів.
Додайте політику бакета
Відкрийте Permissions → Bucket policy → Edit. Замініть обидва значення EXAMPLE-BUCKET повною назвою бакета. Якщо політика вже існує, збережіть її правила та додайте це правило після перевірки всього документа.
- Перевірте повідомлення редактора та виберіть Save changes.
- Переконайтеся, що правило збережено. Залиште Block all public access увімкненим.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyInsecureTransport",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::EXAMPLE-BUCKET",
"arn:aws:s3:::EXAMPLE-BUCKET/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "false",
"aws:PrincipalIsAWSService": "false"
}
}
}
]
}Налаштуйте обмежений доступ IAM
Використовуйте окрему політику для цього бакета та префікса замість AdministratorAccess або AmazonS3FullAccess.
Створіть політику для плагіна
В IAM → Policies → Create policy → JSON вставте наведений документ. Замініть кожне EXAMPLE-BUCKET повною назвою бакета. Префікс alter-product має збігатися з Folder prefix у WordPress; якщо вибрали інший префікс, змініть його в кожному Resource для об’єктів.
- Перевірте політику, виберіть Next і задайте назву, наприклад AlterProductS3Storage.
- Виберіть Create policy та збережіть назву для налаштування користувача.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadRequiredBucketControls",
"Effect": "Allow",
"Action": [
"s3:GetBucketVersioning",
"s3:GetBucketOwnershipControls",
"s3:GetBucketPublicAccessBlock",
"s3:GetEncryptionConfiguration"
],
"Resource": "arn:aws:s3:::EXAMPLE-BUCKET"
},
{
"Sid": "WriteAndReadVersionedPluginObjects",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObjectVersion"
],
"Resource": [
"arn:aws:s3:::EXAMPLE-BUCKET/alter-product/objects/*",
"arn:aws:s3:::EXAMPLE-BUCKET/alter-product/.storage-tests/*"
]
},
{
"Sid": "RecoverJournalOwnedObjects",
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/objects/*"
},
{
"Sid": "DeleteOnlyConnectionTestVersions",
"Effect": "Allow",
"Action": "s3:DeleteObjectVersion",
"Resource": "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/.storage-tests/*"
}
]
}Створіть окремого користувача та ключ доступу
Виберіть IAM → Users → Create user. Не позначайте Provide user access to the AWS Management Console.
- Виберіть Next → Attach policies directly і призначте лише наведену політику. Завершіть дію Create user.
- Відкрийте Security credentials → Access keys → Create access key цього користувача. Для ручного налаштування плагіна виберіть Other → Next, а потім Create access key.
- Збережіть Access key ID і Secret access key у менеджері паролів. Секрет показується лише один раз. Введіть їх безпосередньо у WordPress через HTTPS, не надсилайте в повідомленнях чи на знімках екрана.
Збережіть і перевірте з’єднання у WordPress
Відкрийте Alter Product → Settings → Storage у панелі магазину через HTTPS. Виберіть AWS S3 і + / Add connection.
Введіть параметри підключення
Виберіть New connection. Ця ж вбудована інструкція доступна в AWS S3 setup guide.
- Виберіть Save connection та дочекайтеся підтвердження.
- Виберіть Test connection. Перед повторною перевіркою збережіть зміни.
- Перевірте результат у вікні та стовпці Last connection test. Після збереження поля ключів навмисно очищуються.
| Поле | Значення |
|---|---|
| Bucket name | Повна назва бакета, без ARN, URL s3:// чи HTTPS-адреси; без крапок. |
| Folder prefix | alter-product, як у політиці IAM. Використовуйте літери, цифри, дефіси, підкреслення та розділені папки; без скісної риски на початку або в кінці. |
| Bucket owner AWS account ID | 12-значний ідентифікатор облікового запису власника без пробілів. |
| AWS region | Фактичний регіон бакета. У формі за замовчуванням вибрано eu-central-1. |
| AWS access key ID / AWS secret access key | Збережена пара ключів окремого користувача IAM. |
| Use temporary AWS credentials | Не позначайте для постійного ключа цього користувача IAM. Увімкніть лише для тимчасових облікових даних і вкажіть AWS session token. |
Якщо перевірка з’єднання не вдалася
Перевірте назву бакета, власника, регіон, обов’язкові налаштування й точний збіг префікса у WordPress та IAM. Залиште CORS порожнім; не вимикайте захист від публічного доступу.
Збережені бакет, префікс, власник і регіон визначають ідентичність з’єднання. Для іншого призначення виберіть New connection. Edit → Reconnect замінює облікові дані, зберігаючи наявні посилання на файли.
Передайте підтримці результат перевірки без ключів доступу. Для вибору цього S3 за замовчуванням потрібна успішна перевірка з’єднання.
Виберіть сховище за замовчуванням і перенесіть наявні файли
Вибір призначення за замовчуванням і міграція - окремі дії.
Використовуйте S3 для нових груп
Виберіть Make default у рядку збереженого з’єднання. Плагін перевірить з’єднання та змінить сховище за замовчуванням лише після успіху. Це стосується нових груп файлів; наявні групи та наступні ревізії зберігають попереднє призначення до міграції.
Перенесіть підтримувані наявні групи
Перед першою міграцією створіть спільну резервну копію бази, солей WordPress і файлів. Почніть із тестового середовища або невеликої групи. Відкрийте Migrate у рядку цільового S3; саме відкриття панелі не копіює файли.
Auto migration охоплює підтримувані групи поза вибраним призначенням. Вона не переносить автоматично сторонні файли WordPress.
- Виберіть Start migration. Плагін перевіряє S3, готує кожну групу, копіює та перевіряє її, а потім перемикає посилання.
- Залиште сторінку відкритою. Pause зупиняє роботу після поточної групи; Resume migration продовжує збережений процес. Якщо закрили сторінку, відкрийте її знову для виконання наступних кроків.
- Якщо виникла помилка групи, перевірте повідомлення та Advanced, усуньте причину й відновіть процес. Не повторюйте навмання операцію, результат надсилання якої невідомий.
- Після Migration completed перевірте звичайне читання ресурсів, редагування, попередній перегляд і доступ до файлів замовлень. Для груп, створених під час сканування, може знадобитися ще один прохід.
Видалення рядка не видаляє збережені файли
За потреби спочатку перемкніть сховище за замовчуванням. Remove прибирає з’єднання зі списку, але наявні файли та збережені облікові дані залишаються доступними. Це не команда очищення об’єктів AWS.
Використовуйте спільне сховище для вузлів WordPress
Спільне призначення S3 може зменшити залежність від диска одного вузла. Балансувальнику й надалі потрібне правильно організоване спільне встановлення WordPress.
Вимоги для кількох вузлів
Для одного встановлення WordPress за балансувальником забезпечте всі перелічені умови:
- Один узгоджений вузол запису SQL і спільний стан бази плагіна.
- Спільний каталог uploads для файлів, які залишаються локальними, та збережених джерел міграції.
- Однакові початкові солі WordPress на кожному вузлі для читання збережених облікових даних і зашифрованих файлів.
- Окремий приватний тимчасовий каталог на кожному вузлі для операцій передавання.
- Узгоджена конфігурація плагіна та доступ до одного приватного бакета S3 і версій об’єктів.
- Використовуйте стандартний wpdb із нативним mysqli та таблицями InnoDB. Модулі маршрутизації бази, як-от HyperDB, не підтримуються; балансування тут стосується рівня HTTP.
Забезпечте відновлення та ротацію ключів
Зберігайте базу, солі та версії файлів, на які вона посилається, разом.
Створюйте копії, перепідключайтеся та перевіряйте
Використовуйте Edit → Reconnect для заміни облікових даних того самого збереженого з’єднання. Перш ніж відкликати старий ключ, перевірте читання поточних та історичних файлів, зокрема інших збережених з’єднань, які можуть його використовувати.
Залиште версіювання S3 увімкненим і зберігайте версії, на які посилається плагін. Не застосовуйте очищення lifecycle, що видаляє потрібні історичні версії. Перевірте спільне відновлення бази, солей і файлів.
Тимчасові облікові дані спливають і потребують нових чинних ключів та токена; плагін не поновлює їх автоматично. Зі зростанням магазину стежте за використанням AWS і трафіком хостингу.