Как включить "общий доступ" При загрузке файла в хранилище Firebase?
Хранилище Firebase использует облачную платформу Google для хранения данных. GCP позволяет опцию "Поделиться публично" на файлы, чтобы иметь возможность просматривать такие файлы в браузере.
Вот документация GCP по этой теме.
Здесь вы можете увидеть опцию, доступную через графический интерфейс на консоли GCP.
Можно ли включить опцию public при загрузке файла через Firebase?
Edit: я включил публичное чтение на всем ведре, хотя это не идеально.
gsutil defacl ch -u allUsers:R gs://<bucket>
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 по умолчанию всегда открытым (что произойдет, если вы добавите новую функцию и больше не хотите такого поведения, вы можете забыть выключить его снова...).