2016-06-08 4 views
2

Firebase Storage verwendet die Google Cloud Platform für den Speicher. GCP ermöglicht die Option "Öffentlich freigeben" für Dateien, um solche Dateien in einem Browser anzeigen zu können.Wie kann "Öffentlich freigeben" beim Hochladen einer Datei in den Firebase-Speicher aktiviert werden?

Hier ist die GCP documentation on this topic.

Hier sehen Sie die Option, die über die GUI auf der GCP-Konsole verfügbar ist.

enter image description here

Ist es möglich, die öffentliche Option zu aktivieren, wenn über Firebase Hochladen einer Datei?

Bearbeiten: Ich habe öffentliche Lesung auf den ganzen Eimer aktiviert, obwohl es nicht ideal ist.

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

Antwort

3

Mit Firebase Speicher, sind Sie zwei URLs angegeben, die Sie repräsentieren Dateien verwenden können:

// "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> 

Die zweite Option ermöglicht es Ihnen, diese öffentlich zu teilen, aber unguessable URL mit vertrauenswürdigen Personen und erlaubt Sie können auf Inhalte zugreifen, ohne Firebase zu authentifizieren oder Ihre App zu verwenden. Denken Sie daran, Familienfotos mit Google Fotos zu teilen. Wahrscheinlich wird dieses Verhalten gut genug sein, es sei denn, Sie wünschen eine öffentliche Freigabe mit sauberen URLs. Die dritte Option besteht darin, direkt zur Google Cloud Storage-Konsole zu wechseln und Dateien mit einer sauberen URL öffentlich verfügbar zu machen, die nicht über den Firebase Storage-Client verfügbar ist. Dies würde eine dritte URL hinzufügen:

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

Allgemein gesprochen, es sei denn, Sie wollen die Menschen Ihre Inhalte (Hosting statische Inhalte, Website-Dateien, etc.) kennen und erraten, ich würde nicht Aktien öffentlich über GCS, und würde fast sicher nicht so weit gehen, die Standard-ACL so zu setzen, dass sie immer öffentlich ist (was passiert, wenn Sie eine neue Funktion hinzufügen und dieses Verhalten nicht mehr wollen, vergessen Sie vielleicht, diese wieder auszuschalten ...).

+0

Ihre Antwort ist also, dass Sie eine Datei mit Firebase nicht öffentlich machen können? Ein Problem mit der Sitzungs-URL ist, dass die Bilder und CSS-Dateien nicht angezeigt werden, wenn es sich um eine HTML-Datei handelt. – Pier

+0

Meine Antwort ist, dass # 2 öffentlich ist, und kann in einem "img" -Tag abgelegt oder als CSS-Quelle importiert werden, kein Problem. ' 'ist absolut gültig und funktioniert (siehe https://github.com/mcdonamp/flaming-specs/blob/master/index.html#L59, wenn Sie mir nicht glauben;) –

+0

# 2 kann verwendet werden überall, wo # 3 verwendet werden kann, aber zusätzliche Sicherheit damit verbunden ist .. Die Vorteile von # 3 wären, wenn Sie die Datei als statisches Asset verwenden und eine saubere URL wünschen, ansonsten würde ich nur # 2 verwenden –

Verwandte Themen