Premiers pas avec Cloud Storage pour C++

Cloud Storage for Firebase vous permet d'importer et de partager du contenu généré par l'utilisateur, tel que comme les images et les vidéos, ce qui vous permet d'intégrer du contenu rich media applications. Vos données sont stockées Bucket Google Cloud Storage : un solution de stockage d'objets à l'échelle de l'exaoctet, offrant une haute disponibilité et redondance. Cloud Storage for Firebase vous permet d'importer ces fichiers de manière sécurisée directement à partir d'appareils mobiles et de navigateurs Web, ce qui permet de gérer les réseaux instables avec en toute simplicité.

Avant de commencer

Avant de pouvoir utiliser Cloud Storage vous devez:

  • Enregistrez votre projet C++ et configurez-le pour utiliser Firebase.

    Si votre projet C++ utilise déjà Firebase, il est déjà enregistré. configurés pour Firebase.

  • Ajoutez le SDK C++ Firebase à votre projet C++.

Notez que l'ajout de Firebase à votre projet C++ implique des tâches à la fois dans la console Firebase et dans votre projet C++ ouvert (par exemple, si vous téléchargez les fichiers de configuration Firebase depuis la console, puis déplacez-les dans votre projet C++).

Créer un bucket Cloud Storage par défaut

  1. Dans le volet de navigation de la console Firebase, sélectionnez Stockage. puis cliquez sur Commencer.

  2. Consultez les messages concernant la sécurisation de vos données Cloud Storage à l'aide de règles de sécurité. Pendant le développement, tenez compte Configurer vos règles d'accès public

  3. Sélectionnez un emplacement pour l'emplacement par défaut. Cloud Storage.

    • Ce paramètre d'emplacement correspond à l'emplacement par défaut des ressources Google Cloud Platform (GCP) pour le projet. Notez que cet emplacement sera utilisé pour les services GCP dans votre projet. qui requièrent un paramètre de localisation : la base de données Cloud Firestore et votre Application App Engine (obligatoire si vous utilisez Cloud Scheduler).

    • Si vous ne parvenez pas à sélectionner un emplacement, c'est que votre projet dispose déjà d'un emplacement par défaut des ressources GCP. Il a été défini lors de la création du projet ou lors de la configuration d'un autre service nécessitant un paramètre d'emplacement.

    Si vous utilisez le forfait Blaze, vous pouvez créer plusieurs buckets, chacun avec sa propre zone.

  4. Cliquez sur OK.

Configurer l'accès public

Cloud Storage for Firebase fournit un langage de règles déclaratives qui vous permet pour définir la façon dont vos données doivent être structurées, comment elles doivent être indexées et à quel moment vos données peuvent être lues et écrites. Par défaut, l'accès en lecture et en écriture à Cloud Storage est limité de sorte que seuls les utilisateurs authentifiés peuvent lire ou écrire des données données. Pour commencer sans configurer Authentication, vous pouvez : configurez vos règles d'accès public.

Cela rend Cloud Storage ouvert à tous, même aux personnes qui n'utilisent pas votre N'oubliez donc pas de restreindre de nouveau votre Cloud Storage lors de la configuration l'authentification unique.

Créer et initialiser firebase::App

Avant de pouvoir accéder à Cloud Storage, vous devez créer et initialiser le firebase::App.

Incluez le fichier d'en-tête pour firebase::App:

#include "firebase/app.h"

Android

Créez le firebase::App, en transmettant l'environnement JNI et un jobject. référence à l'activité Java en tant qu'arguments:

app = App::Create(AppOptions(), jni_env, activity);

iOS+

Créez le sous-réseau firebase::App :

app = App::Create(AppOptions());

Accéder à la classe firebase::storage::Storage

firebase::storage::Storage est le point d'entrée du SDK C++ Cloud Storage.

Storage* storage = Storage::GetInstance(app);

Vous pouvez maintenant utiliser Cloud Storage !

Commençons par découvrir comment créer une référence Cloud Storage.

Configuration avancée

Certains cas d'utilisation nécessitent une configuration supplémentaire:

Le premier cas d'utilisation est parfait si vous avez des utilisateurs dans le monde entier et que vous souhaitez stocker leurs données à proximité d'eux. Par exemple, vous pouvez créer des buckets aux États-Unis, l'Europe et l'Asie pour stocker les données des utilisateurs dans ces régions afin de réduire la latence.

Le deuxième cas d'utilisation est utile si vos données présentent différents modèles d'accès. Par exemple, vous pouvez configurer un bucket multirégional ou régional qui stocke des images ou d'autres contenus fréquemment consultés, ainsi qu'un bucket Nearline ou Coldline qui stocke les sauvegardes des utilisateurs ou d'autres contenus rarement consultés.

Dans l'un ou l'autre de ces cas d'utilisation, utilisez plusieurs buckets Cloud Storage.

Le troisième cas d'utilisation est utile si vous développez une application, comme Google Drive, permet aux utilisateurs de disposer de plusieurs comptes connectés (par exemple, un compte personnel) et un compte professionnel). Vous pouvez utiliser une instance d'application Firebase personnalisée pour authentifier chaque compte supplémentaire.

Utiliser plusieurs buckets Cloud Storage

Si vous souhaitez utiliser un bucket Cloud Storage autre que celui par défaut fourni ci-dessus ou plusieurs buckets Cloud Storage dans une même application, vous pouvez créer une instance de firebase::storage::Storage qui fait référence à votre bucket personnalisé :

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::GetInstance("gs://my-custom-bucket");

Utiliser des buckets importés

Lorsque vous importez un bucket Cloud Storage existant dans Firebase, vous devez : devez autoriser Firebase à accéder à ces fichiers à l'aide du gsutil, inclus dans le SDK Google Cloud:

gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

Vous trouverez votre numéro de projet comme décrit dans la section Présentation Projets Firebase.

Cela n'affecte pas les nouveaux buckets, car ceux-ci disposent de l'accès par défaut pour autoriser Firebase. Il s'agit d'une mesure temporaire automatiquement à l'avenir.

Utiliser une application Firebase personnalisée

Si vous créez une application plus complexe à l'aide d'un firebase::App personnalisé, vous vous pouvez créer une instance de firebase::storage::Storage initialisée avec cette application:

// Get the default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp);

// Get a non-default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");

Étapes suivantes