Skip to content

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 їх не підтримує взагалі — доступ роздають політикою бакета або підписаними посиланнями.