S3 Compatible Storage¶
🇬🇧 English | 🇺🇦 Українська
Об'єктне сховище для Unreal Engine — на будь-якому S3-сумісному провайдері.
Версія 1.0 · Runtime · UE 5.7 · Примітки до випуску Win64 · Mac · Linux · iOS · Android Без сторонніх бібліотек: лише модуль HTTP і власна реалізація SHA-256
Перевірено наскрізними тестами на Amazon S3, Cloudflare R2, Backblaze B2, Google Cloud Storage, MinIO і Wasabi.
Швидкий старт: три ноди¶
Найкоротший шлях від «щойно встановив» до «файл у сховищі».
1. Налаштуйте підключення один раз
Відкрийте Project Settings → Plugins → S3 Compatible Storage:
| Поле | Що вписати |
|---|---|
| Provider | Ваш провайдер зі списку. Це головне поле — воно саме проставить решту |
| Endpoint URL | Лишіть порожнім для Amazon S3 і Google Cloud Storage. Для решти — адреса вашого сервісу |
| Region | Регіон вашого бакета. Для Cloudflare R2 — літерал auto |
| Default Bucket | Бакет, з яким працюватимете за замовчуванням |
Нижче, у секції S3 Credentials (Editor Only), впишіть ключі. Вони зберігаються
у вашому власному EditorPerProjectUserSettings.ini і ніколи не потрапляють у зібрану
гру — докладніше в розділі Облікові дані.
2. Натисніть Test Connection
Кнопка вгорі сторінки. Вона надсилає справжній запит тим самим кодом, яким працюватиме зібрана гра, і пише результат просто під кнопками. Якщо щось не так — підкаже, яке саме налаштування змінити.
3. Виконайте операцію
Get S3 Subsystem → Get Default S3 Client → S3 Upload File
Ані створювати клієнта, ані зберігати його у змінній не треба: підсистема робить це за вас.
Розділи¶
| Розділ | Про що |
|---|---|
| 00. Обмеження демо-версії | Що обмежено в демо-виданні та як перейти на повну версію |
| Примітки до випуску | Що з'явилося й що виправлено в кожному випуску |
| 1. Швидкий старт | Перше завантаження і перше зчитування, крок за кроком |
| 2. Налаштування | Сторінка налаштувань, провайдери, параметри передавання |
| 3. Облікові дані | Де тримати ключі — і чому це найважливіше рішення |
| 4. Операції у Blueprint | Усі ноди з описом пінів і прикладами |
| 5. Передавання файлів | Прогрес, скасування, великі файли, багаточастинне завантаження |
| 6. C++ API | Той самий функціонал із коду |
| 7. Помилки та діагностика | Як читати помилки і що робити з типовими |
| 8. Провайдери | Особливості кожного сервісу |
| 9. Тестування | Автотести плагіна і як перевірити власну інтеграцію |
| 10. Сценарії розгортання | Сингл, мультиплеєр, виділений сервер, настільний застосунок |
| 11. Поширені запитання | Короткі відповіді на те, що запитують найчастіше |
| 12. Консоль розробника | Консольні команди для тестувальників і програмістів: завантажити, перелічити, подивитися останні запити |
| 13. Профілі на практиці | Ассети профілів у сингл-грі, listen-сервері, виділеному сервері й настільному застосунку — звідки в кожному беруться ключі |
| 14. Рецепти облікових даних | Покроково під кожну конфігурацію, з C++ і Blueprint поруч: від екрана введення ключів до підписаних посилань |
Що вміє плагін¶
Операції. Завантаження та зчитування об'єктів, часткове зчитування за діапазоном байтів, перелік об'єктів і бакетів, видалення поодинці та пакетом, читання й заміна метаданих, копіювання на боці сервера, створення бакетів, генерація підписаних посилань.
Великі файли. Усе, що більше за розмір частини, автоматично йде багаточастинним завантаженням, кілька частин одночасно. Файл читається в міру надсилання, тож завантаження на 2 ГБ коштує кількох буферів, а не 2 ГБ пам'яті. Зчитування так само пишеться на диск у міру надходження.
Надійність. Обриви з'єднання, таймаути, обмеження швидкості з боку провайдера та збої сервера повторюються автоматично з експоненційною затримкою. Клієнтські помилки не повторюються — від повтору вони не зникнуть.
Скасування. Кожна операція повертає дескриптор. Скасування багаточастинного завантаження до того ж скасовує його й на боці провайдера, щоб уже надіслані частини не залишалися в бакеті — невидимі в переліку й оплачувані.
Зрозумілі помилки. Провайдер відповідає кодом на кшталт SignatureDoesNotMatch, який
нічого не каже про причину. Плагін додає до результату речення про те, яке саме налаштування
змінити.
Чого немає¶
- Переходи між класами зберігання у правилах життєвого циклу — задаються в консолі провайдера.
- Помічники для ACL. Amazon вимикає ACL у нових бакетах за замовчуванням, а Cloudflare R2 їх не підтримує взагалі — доступ роздають політикою бакета або підписаними посиланнями.