Принцип работы и использования облачного объектного хранилища
Для для мобильного приложения необходимо сохранять файлы. Есть backend с базой данных. Я не могу понять, файлы можно ведь сохранять сразу с мобильного приложения в облако, но! Это получается в приложении должны быть ключи, которые нужны для работы с облаком, не опасно ли это? Или необходимо загружать файл с приложения на сервер, а оттуда на облако? Кажется не целесообразным гонять файлы туда сюда, это ведь время на загрузку на сервер, а потом на облако? Или подскажите литературу или статью об использовании облачных хранилищ и архитектуре таких решений. Думаю что в работе с облаком не один подход, и нужно подобрать оптимальный для проекта.
Ответы (1 шт):
Для решения проблемы доступа к хранилищу используется следующий подход.
Когда мобильному приложению требуется, например, прочитать данные, оно запрашивает backend сервер, который генерирует временную ссылку на файл в хранилище. Эта ссылка дает доступ к одному файлу на протяжении ограниченого периода времени. Мобильное приложение использует ее для доступа к файлу напрямую.
Это работает как для чтения, так и для модификации или создания.
Условно код в мобильном приложении будет делать загрузку файла так:
URL tempUploadURL = myBackend.generateTemporaryUrlForUpload();
// tempUploadURL содержит URL который указывает в облако
http.put(tempUploadURL, fileContent, headers={'content-length': ...})