Cloud Storage for Firebase ti consente di caricare e condividere contenuti generati dagli utenti, ad esempio immagini e video, che ti permettono di integrare contenuti rich media nelle tue app. I tuoi dati vengono archiviati in un bucket Google Cloud Storage, una soluzione di archiviazione degli oggetti su scala di exabyte con alta disponibilità e ridondanza globale. Cloud Storage for Firebase ti consente di caricare in modo sicuro questi file direttamente da dispositivi mobili e browser web, gestendo facilmente le reti instabili.
Prima di iniziare
Se non l'hai ancora fatto, assicurati di aver completato la guida introduttiva per le app web. È incluso quanto segue:
Creazione di un progetto Firebase.
Registrando la tua app web al progetto e connettendo la tua app a Firebase aggiungendo l'SDK Firebase JS e l'oggetto di configurazione Firebase alla tua app.
Assicurati che il tuo progetto Firebase utilizzi il piano tariffario Blaze con pagamento a consumo. Se non hai mai utilizzato Firebase e Google Cloud, verifica se hai diritto a un credito di 300$.
Crea un bucket Cloud Storage predefinito
Nel riquadro di navigazione della console Firebase, seleziona Storage.
Se il tuo progetto non è ancora stato eseguito con il piano tariffario Blaze con pagamento a consumo, ti verrà chiesto di eseguire l'upgrade del progetto.
Fai clic su Inizia.
Seleziona una posizione per il bucket predefinito.
I bucket in
,US-CENTRAL1
eUS-EAST1
possono usufruire del livello"Always Free" per Google Cloud Storage. I bucket in tutte le altre località seguono i prezzi e l'utilizzo di Google Cloud Storage.US-WEST1
Se vuoi, puoi creare più bucket, ognuno con la propria posizione.
Configura Firebase Security Rules per il bucket predefinito. Durante lo sviluppo, valuta la possibilità di configurare le regole per l'accesso pubblico.
Fai clic su Fine.
Ora puoi visualizzare il bucket nella
scheda File di Cloud Storage
della console Firebase. Il formato predefinito del nome del bucket è
PROJECT_ID.firebasestorage.app
Configurare l'accesso pubblico
Cloud Storage for Firebase fornisce un linguaggio di regole dichiarativo che ti consente di definire come devono essere strutturati i tuoi dati, come devono essere indicizzati e quando possono essere letti e scritti. Per impostazione predefinita, l'accesso in lettura e scrittura a Cloud Storage è limitato in modo che solo gli utenti autenticati possano leggere o scrivere dati. Per iniziare senza configurare Authentication, puoi configurare le regole per l'accesso pubblico.
In questo modo Cloud Storage diventa accessibile a chiunque, anche a chi non utilizza la tua app, quindi assicurati di limitare nuovamente Cloud Storage quando configuri l'autenticazione.
Aggiungi l'SDK JavaScript Cloud Storage e inizializza Cloud Storage
Devi specificare il nome del bucket Cloud Storage quando inizializzi l'SDK JavaScript.
Puoi trovare il nome del bucket Cloud Storage nella scheda Cloud Storage della console Firebase. A seconda di quando hai creato il bucket predefinito, il nome del bucket sarà in uno dei seguenti formati:
(bucket predefinito creato a partire dalPROJECT_ID.firebasestorage.app
30 ottobre 2024 ) (bucket predefinito creato prima delPROJECT_ID.appspot.com
30 ottobre 2024 )
Inizializza l'SDK utilizzando il seguente snippet di codice:
Web
import { initializeApp } from "firebase/app"; import { getStorage } from "firebase/storage"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... storageBucket: 'BUCKET_NAME' }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Cloud Storage and get a reference to the service const storage = getStorage(app);
Web
import firebase from "firebase/app"; import "firebase/compat/storage"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... storageBucket: 'BUCKET_NAME' }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Cloud Storage and get a reference to the service const storage = firebase.storage();
Ora puoi iniziare a usare Cloud Storage.
Passaggio successivo? Scopri come creare un riferimento Cloud Storage.
Configurazione avanzata
Esistono alcuni casi d'uso che richiedono una configurazione aggiuntiva:
- Utilizzo di bucket Cloud Storage in più regioni geografiche
- Utilizzo di bucket Cloud Storage in diverse classi di archiviazione
- Utilizzo di bucket Cloud Storage con più utenti autenticati nella stessa app
Il primo caso d'uso è perfetto se hai utenti in tutto il mondo e vuoi archiviare i loro dati nelle vicinanze. Ad esempio, puoi creare bucket negli Stati Uniti, in Europa e in Asia per archiviare i dati degli utenti di queste regioni e ridurre la latenza.
Il secondo caso d'uso è utile se hai dati con pattern di accesso diversi. Ad esempio, puoi configurare un bucket multiregionale o regionale che archivia immagini o altri contenuti a cui si accede di frequente e un bucket nearline o coldline che archivia i backup degli utenti o altri contenuti a cui si accede di rado.
In entrambi questi casi d'uso, ti consigliamo di utilizzare più bucket Cloud Storage.
Il terzo caso d'uso è utile se stai creando un'app, come Google Drive, che consente agli utenti di avere più account con accesso (ad esempio, un account personale e un account di lavoro). Puoi utilizzare un'istanza dell'app Firebase personalizzata per autenticare ogni account aggiuntivo.
Utilizzare più bucket Cloud Storage
Se vuoi utilizzare un bucket Cloud Storage diverso da quello predefinito descritto in precedenza in questa guida o utilizzare più bucket Cloud Storage in una singola app, puoi creare un'istanza di firebase.storage
che fa riferimento al tuo bucket personalizzato:
Web
import { getApp } from "firebase/app"; import { getStorage } from "firebase/storage"; // Get a non-default Storage bucket const firebaseApp = getApp(); const storage = getStorage(firebaseApp, "gs://my-custom-bucket");
Web
// Get a non-default Storage bucket var storage = firebase.app().storage("gs://my-custom-bucket");
Utilizzo dei bucket importati
Quando importi un bucket Cloud Storage esistente in Firebase, devi concedere a Firebase la possibilità di accedere a questi file utilizzando lo strumento gsutil
, incluso nell'SDK Google Cloud:
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME
Puoi trovare il numero di progetto come descritto nell'introduzione ai progetti Firebase.
Ciò non influisce sui bucket appena creati, in quanto il controllo dell'accesso predefinito è impostato per consentire Firebase. Si tratta di una misura temporanea che verrà eseguita automaticamente in futuro.
Utilizzare un'app Firebase personalizzata
Se stai creando un'app più complessa utilizzando un firebase.app.App
personalizzato, puoi creare un'istanza di firebase.storage.Storage
inizializzata con quell'app:
Web
import { getStorage } from "firebase/storage"; // Get the default bucket from a custom firebase.app.App const storage1 = getStorage(customApp); // Get a non-default bucket from a custom firebase.app.App const storage2 = getStorage(customApp, "gs://my-custom-bucket");
Web
// Get the default bucket from a custom firebase.app.App var storage = customApp.storage(); // Get a non-default bucket from a custom firebase.app.App var storage = customApp.storage("gs://my-custom-bucket");
Passaggi successivi
Preparati a lanciare la tua app:
Attiva App Check per garantire che solo le tue app possano accedere ai tuoi bucket di archiviazione.
Configura avvisi sul budget per il tuo progetto nella console Google Cloud.
Monitora la dashboard Utilizzo e fatturazione nella console Firebase per avere un quadro generale dell'utilizzo del tuo progetto in più servizi Firebase. Puoi anche visitare la Cloud Storage dashboard Utilizzo per informazioni più dettagliate sull'utilizzo.