📦 Внешнее хранилище (S3) и Cloud Functions

Когда стандартного Storage (Firebase/Supabase) недостаточно по цене или функционалу, разработчики используют внешние S3-совместимые хранилища.

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

Если вы используете self-hosted Supabase, вы можете подключить к нему любое S3-совместимое хранилище.

  • Преимущество: Вы работаете с ним через интерфейс Supabase (папки, бакеты) и встроенные средства FlutterFlow, как с нативным хранилищем.
  • Безопасность: Ключи доступа хранятся на сервере Supabase, а не в коде мобильного приложения.

🛠 Реализация через Cloud Functions (Firebase)

Если бэкенда нет, а использовать внешнее хранилище нужно, используйте Cloud Functions.

Зачем это нужно?

  1. Безопасность: Ключи подключения к S3 нельзя хранить на клиенте (их легко украсть). Функция на сервере выступает посредником.
  2. Ресайз изображений: Это критически важно! Если пользователь загружает фото на 4Мб, отдавать его другим пользователям нужно пережатым до 100-200Кб.

Логика работы:

  1. Клиент вызывает Cloud Function.
  2. Функция принимает файл, пережимает его и сохраняет в S3.
  3. Функция раскладывает фото по папкам пользователей и возвращает URL.

🔗 Ресурсы:


По материалам @Kosmorangers и @skripov_channel