Как включить "общий доступ" При загрузке файла в хранилище Firebase?


Хранилище Firebase использует облачную платформу Google для хранения данных. GCP позволяет опцию "Поделиться публично" на файлы, чтобы иметь возможность просматривать такие файлы в браузере.

Вот документация GCP по этой теме.

Здесь вы можете увидеть опцию, доступную через графический интерфейс на консоли GCP.

Введите описание изображения здесь

Можно ли включить опцию public при загрузке файла через Firebase?

Edit: я включил публичное чтение на всем ведре, хотя это не идеально.

gsutil defacl ch -u allUsers:R gs://<bucket>
1 3

1 ответ:

В Firebase Storage вы получаете два URL-адреса, которые можно использовать для представления файлов:

// "Private" internal URL, only accessible through Firebase Storage API
// This is protected by Firebase Storage Security Rules & Firebase Auth
gs://bucket/object

// "Public" unguessable URL, accessible by anyone with the link
// This is secured because that token is *very* hard for someone to guess
https://firebasestorage.googleapis.com/v0/bucket/object?alt=media&token=<token>

Второй вариант позволяет вам делиться этим общедоступным, но неочевидным URL-адресом с доверенными лицами и позволяет им получать доступ к контенту без аутентификации в Firebase или с помощью вашего приложения-например, делиться семейными фотографиями с Google Photos. Вероятно, это поведение будет достаточно хорошим, если вы не хотите публичного обмена с чистыми URL-адресами.

Третий вариант, как вы упомянули, включает в себя переход непосредственно в консоль облачного хранилища Google и делает файлы общедоступными с чистым URL-адресом, который недоступен через клиент хранилища Firebase. Это добавило бы третий URL:

// "Public" clean URL, accessible and guessable
// Not secure, typically used for public, static content
https://storage.googleapis.com/v0/bucket/object

Вообще говоря, если вы не хотите, чтобы люди знали и угадывали ваш контент (хостинг статического контента, файлы веб-сайтов и т. д.), Я не стал бы делиться публично через GCS и почти наверняка не зашел бы так далеко, чтобы установить ACL по умолчанию всегда открытым (что произойдет, если вы добавите новую функцию и больше не хотите такого поведения, вы можете забыть выключить его снова...).