Cette page a été traduite par l'API Cloud Translation.
Switch to English

Intégrer à Google Cloud Platform

Google Cloud Storage pour Firebase est étroitement intégré à Google Cloud Platform . Les SDK Firebase pour Cloud Storage stockent les fichiers directement dans les buckets Google Cloud Storage et, à mesure que votre application se développe, vous pouvez facilement intégrer d'autres services Cloud, tels que le calcul géré comme App Engine ou Cloud Functions, ou des API d'apprentissage automatique comme Cloud Vision ou Google Translate .

Sous le capot, les SDK Firebase pour Cloud Storage utilisent le bucket par défaut de l'offre gratuite de Google App Engine . Cela vous permet de démarrer rapidement avec Google Cloud Storage, sans avoir à entrer de carte de crédit ou à activer un compte de facturation. Il vous permet également de partager facilement des données entre Firebase et un projet Google Cloud Platform.

L'intégration à Google Cloud Platform, y compris l'importation de buckets Cloud Storage existants, nécessite un projet Firebase sur le plan Blaze. En savoir plus sur les forfaits sur notre page de tarification .

Google Cloud Storage

Vous pouvez utiliser les API Google Cloud Storage pour accéder aux fichiers téléchargés via les SDK Firebase pour Cloud Storage, en particulier pour effectuer des opérations plus complexes, telles que la copie ou le déplacement d'un fichier, ou la liste de tous les fichiers disponibles à une référence.

Il est important de noter que ces demandes utilisent les options de contrôle d'accès de Google Cloud Storage, plutôt que les règles d'authentification et de sécurité du stockage Firebase.

Apis

En plus des SDK Firebase pour Cloud Storage, il existe plusieurs autres moyens d'accéder aux données stockées dans votre bucket Google Cloud Storage, en fonction de ce que vous voulez faire. Si vous accédez à des données sur un serveur, nous proposons des bibliothèques côté serveur, ainsi qu'une API RESTful XML compatible JSON et S3, ou si vous avez besoin de scripts de modifications ou d'effectuer d'autres tâches administratives, nous avons un outil de ligne de commande qui sera utile.

SDK Google-Cloud Server

Google Cloud Platform propose des SDK de serveur de haute qualité pour un certain nombre de produits GCP, y compris Cloud Storage. Ces bibliothèques sont disponibles dans Node.js , Java , go , Python , PHP et Ruby . Pour plus d'informations, y compris les instructions d'installation, l'authentification et le dépannage, veuillez consulter les documents spécifiques à la plate-forme liés.

Un exemple d'utilisation du SDK Google Cloud est illustré ci-dessous:

Node.js

    // Require gcloud
    var gcloud = require('google-cloud');

    // Enable Storage
    var gcs = gcloud.storage({
      projectId: 'grape-spaceship-123',
      keyFilename: '/path/to/keyfile.json'
    });

    // Reference an existing bucket.
    var bucket = gcs.bucket('my-existing-bucket');

    // Upload a local file to a new file to be created in your bucket.
    bucket.upload('/photos/zoo/zebra.jpg', function(err, file) {
      if (!err) {
        // "zebra.jpg" is now in your bucket.
      }
    });

    // Download a file from your bucket.
    bucket.file('giraffe.jpg').download({
      destination: '/photos/zoo/giraffe.jpg'
    }, function(err) {});
    

Java

    // Enable Storage
    Storage storage = StorageOptions.builder()
      .authCredentials(AuthCredentials.createForJson(new FileInputStream("/path/to/my/key.json"))
      .build()
      .service();

    // Upload a local file to a new file to be created in your bucket.
    InputStream uploadContent = ...
    BlobId blobId = BlobId.of("my-existing-bucket", "zebra.jpg");
    BlobInfo blobInfo = BlobInfo.builder(blobId).contentType("text/plain").build();
    Blob zebraBlob = storage.create(blobInfo, content);

    // Download a file from your bucket.
    Blob giraffeBlob = storage.get("my-existing-bucket", "giraffe.jpg", null);
    InputStream downloadContent = giraffeBlob.getInputStream();
    

Aller

    // Enable Storage
    client, err := storage.NewClient(ctx, option.WithServiceAccountFile("path/to/keyfile.json"))
    if err != nil {
        log.Fatal(err)
    }

    // Download a file from your bucket.
    rc, err := client.Bucket("my-existing-bucket").Object("giraffe.jpg").NewReader(ctx)
    if err != nil {
        log.Fatal(err)
    }
    defer rc.Close()
    body, err := ioutil.ReadAll(rc)
    if err != nil {
        log.Fatal(err)
    }
    

Python

    # Import gcloud
    from google.cloud import storage

    # Enable Storage
    client = storage.Client()

    # Reference an existing bucket.
    bucket = client.get_bucket('my-existing-bucket')

    # Upload a local file to a new file to be created in your bucket.
    zebraBlob = bucket.get_blob('zebra.jpg')
    zebraBlob.upload_from_filename(filename='/photos/zoo/zebra.jpg')

    # Download a file from your bucket.
    giraffeBlob = bucket.get_blob('giraffe.jpg')
    giraffeBlob.download_as_string()
    

PHP

    // Require gcloud
    require 'vendor/autoload.php';
    use Google\Cloud\Storage\StorageClient;

    // Enable Storage
    $storage = new StorageClient([
        'projectId' => 'grape-spaceship-123'
    ]);

    // Reference an existing bucket.
    $bucket = $storage->bucket('my-existing-bucket');

    // Upload a file to the bucket.
    $bucket->upload(
        fopen('/photos/zoo/zebra.jpg', 'r')
    );

    // Download a file from your bucket.
    $object = $bucket->object('giraffe.jpg');
    $object->downloadToFile('/photos/zoo/giraffe.jpg');
    

Rubis

    # Require gcloud
    require "google/cloud"

    # Enable Storage
    gcloud = Google::Cloud.new "grape-spaceship-123", "/path/to/keyfile.json"
    storage = gcloud.storage

    # Reference an existing bucket.
    bucket = storage.bucket "my-existing-bucket"

    # Upload a file to the bucket.
    bucket.create_file "/photos/zoo/zebra.jpg", "zebra.jpg"

    # Download a file from your bucket.
    file = bucket.file "giraffe.jpg"
    file.download "/photos/zoo/#{file.name}"
    

API REST

Si vous utilisez un langage sans bibliothèque cliente, que vous voulez faire quelque chose que les bibliothèques clientes ne font pas ou que vous avez simplement un client HTTP préféré que vous préférez utiliser, Cloud Storage propose à la fois des API JSON et XML que vous peut utiliser.

gsutil

gsutil est un outil de ligne de commande qui vous donne un accès direct à Cloud Storage. Vous pouvez utiliser gsutil pour effectuer un large éventail de tâches de gestion des compartiments et des objets, notamment:

  • Téléchargement, téléchargement et suppression d'objets.
  • Liste des seaux et des objets.
  • Déplacer, copier et renommer des objets.
  • Modification des ACL des objets et des compartiments.

gsutil permet d'autres opérations avancées, telles que le déplacement de fichiers d'un répertoire à un autre ou la suppression de tous les fichiers situés sous un certain emplacement.

Déplacer tous les fichiers d'une référence à une autre est aussi simple que:

gsutil mv gs://bucket/old/reference gs://bucket/new/reference

La suppression par lots de tous les fichiers sous une référence est également intuitive:

# Delete all files under a path
gsutil rm -r gs://bucket/reference/to/delete

# Delete all the files in a bucket but not the bucket gsutil rm -r gs://bucket/**

# Delete all the files AND the bucket # Removing the default bucket will break the Firebase SDKs for Cloud Storage and is strongly discouraged gsutil rm -r gs://bucket

Gestion des versions d'objets

Avez-vous déjà supprimé quelque chose par accident et n'avez pas eu de sauvegarde? La gestion des versions d'objets Cloud Storage offre un moyen automatique de sauvegarder vos données et de les restaurer à partir de ces sauvegardes. Vous pouvez activer la versioning set objets à l'aide de la commande gsutil versioning set :

gsutil versioning set on gs://<your-cloud-storage-bucket>

Firebase Storage récupère toujours la version la plus récente, donc si vous souhaitez restaurer un objet, vous devez utiliser l'une des autres API ou outils ci-dessus pour définir l'objet souhaité comme le plus récent.

Gestion du cycle de vie des objets

La possibilité d'archiver ou de supprimer automatiquement les fichiers périmés est une fonctionnalité utile pour de nombreuses applications. Heureusement, Cloud Storage fournit la gestion du cycle de vie des objets , qui vous permet de supprimer ou d'archiver des objets après un certain temps.

Envisagez une application de partage de photos dans laquelle vous souhaitez que toutes les photos soient supprimées en un jour. Vous pouvez configurer une stratégie de cycle de vie d'objet comme suit:

// lifecycle.json
{
  "lifecycle": {
    "rule":
    [
      {
        "action": {"type": "Delete"},
        "condition": {"age": 1}
      }
    ]
  }
}

Et déployez-le à l'aide de la commande gsutil lifecycle set :

gsutil lifecycle set lifecycle.json gs://<your-cloud-storage-bucket>

Notez que cela s'applique à tous les fichiers du compartiment, donc si vous stockez des sauvegardes d'utilisateurs importantes que vous souhaitez stocker pendant une longue période avec des photos que vous souhaitez supprimer quotidiennement, vous pouvez utiliser deux compartiments distincts ou effectuer des suppressions manuellement avec gsutil ou votre propre serveur.

Google App Engine

Google App Engine est une "plate-forme en tant que service" qui met automatiquement à l'échelle la logique du backend en fonction de la quantité de trafic qu'il reçoit. Téléchargez simplement votre code backend et Google gérera la disponibilité de votre application; il n'y a aucun serveur à fournir ou à maintenir. App Engine est un moyen rapide et simple d'ajouter une puissance de traitement supplémentaire ou une exécution fiable à votre application Firebase.

Les SDK Firebase pour Cloud Storage utilisent le bucket par défaut de Google App Engine, ce qui signifie que si vous créez une application App Engine, vous pouvez utiliser les API App Engine intégrées pour partager des données entre Firebase et App Engine. Ceci est utile pour effectuer le codage audio, le transcodage vidéo et les transformations d'image, ainsi que pour d'autres traitements en arrière-plan intensifs en calcul.

Les environnements Java, Python et go Standard pour Google App Engine incluent l'API GAE Images ( Java , Python , qui peut redimensionner, faire pivoter, retourner et recadrer une image, ainsi que renvoyer une URL de diffusion d'image qui permet des transformations côté client. , similaire à Cloudinary et Imgix.

Lors de l'importation d'un projet Google Cloud Platform existant dans Firebase, si vous souhaitez rendre des objets App Engine existants disponibles dans Firebase, vous devez définir le contrôle d'accès par défaut sur vos objets pour permettre à Firebase d'y accéder en exécutant la commande suivante à l'aide de gsutil :

gsutil -m acl ch -r -u firebase-storage@system.gserviceaccount.com:O gs://<your-cloud-storage-bucket>

Problèmes connus

Il existe deux cas connus dans lesquels vous ne pouvez pas importer votre application GAE:

  1. Le projet contient une ancienne application App Engine Datastore Master / Slave.
  2. Le projet a un ID de projet avec préfixe de domaine, par exemple: domain.com:project-1234 .

Dans l'un ou l'autre de ces cas, le projet ne prend pas en charge Google Cloud Storage pour Firebase, et vous devez créer un nouveau projet Firebase afin d'utiliser Google Cloud Storage. Veuillez contacter le support afin que nous puissions vous aider.

Google Cloud Functions (bêta)

Google Cloud Functions est une solution de calcul asynchrone légère, basée sur les événements, qui vous permet de créer de petites fonctions à usage unique qui répondent aux événements sans avoir à gérer un serveur ou un environnement d'exécution. Ces fonctions peuvent être utilisées pour transcoder la vidéo, classer des images à l'aide de l'apprentissage automatique ou synchroniser les métadonnées avec la base de données Firebase Realtime. Avec encore moins de frais généraux que Google App Engine, Cloud Functions est le moyen le plus rapide de réagir aux changements dans Firebase Storage.

API Google Cloud Vision

L' API Google Cloud Vision permet aux développeurs de comprendre le contenu d'une image en encapsulant de puissants modèles d'apprentissage automatique dans une API facile à utiliser. Il classe rapidement les images dans des milliers de catégories, détecte les objets et les visages individuels dans les images, trouve et lit les mots imprimés contenus dans les images, identifie le contenu offensant et fournit même une analyse du sentiment d'image.

API Google Cloud Speech

Semblable à l'API Vision, l'API Google Cloud Speech permet aux développeurs d'extraire du texte d'un fichier audio stocké dans Cloud Storage. L'API reconnaît plus de 80 langues et variantes pour prendre en charge votre base d'utilisateurs mondiale. Lorsqu'elle est associée à l' API Google Cloud Natural Language , les développeurs peuvent à la fois extraire le texte brut et en déduire la signification. Et si une audience mondiale est requise, associez-la à l' API Google Translate pour traduire le texte dans plus de 90 langues.