Google Cloud ile entegrasyon

Cloud Storage for Firebase, ile yakından entegre Google Cloud Cloud Storage için Firebase SDK'ları dosyaları doğrudan Google Cloud Storage paket, Ayrıca, uygulamanız büyüdükçe diğer Google Cloud hizmetlerini ve Örneğin, App Engine veya Cloud Functions gibi yönetilen bilgi işlem Cloud Vision veya Google Çeviri gibi öğrenme API'lerini kullanabilirsiniz.

Firebase, hizmetleri çalıştırmak ve yönetmek için Google Cloud hizmet hesaplarını kullanır kullanıcı kimlik bilgilerini paylaşmadan. Firebase projesi oluşturduğunuzda Cloud Storage, ilgili bir hizmet hesabının mevcut olduğunu projenizde zaten mevcut: service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com. Görüntüleyin Daha fazla bilgi için bu Firebase destek kılavuzunu ekleyebilirsiniz.

Cloud Storage için Firebase SDK'ları şu kapsamdaki varsayılan paketi kullanır: App Engine ücretsiz katmanı. Bu Böylece, herhangi bir işlem yapmanıza gerek kalmadan Cloud Storage ürününü hızlı bir şekilde kullanmaya başlayabilirsiniz. kredi kartı takmak veya bir Cloud Billing hesabını etkinleştirmek zorunda kalıyorlar. Aynı zamanda Firebase ile Google Cloud projesi arasında kolayca veri paylaşmanıza olanak tanır.

Mevcut Cloud Storage verilerini içe aktarma da dahil olmak üzere Google Cloud ile entegrasyon Blaze planında bir Firebase projesi gerektirir. Şu konu hakkında daha fazla bilgi edinin: fiyatlandırma sayfamızda bulabilirsiniz.

Google Cloud Storage

URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için Google Cloud Storage API Firebase SDK'ları aracılığıyla Cloud Storage için yüklenen dosyalara erişmek için bir dosyayı kopyalama veya taşıma ya da listeleme gibi daha karmaşık işlemler gerçekleştirme referansta yer alan tüm dosyaları içerir.

Bu isteklerin Google Cloud Storage kullandığını göz önünde bulundurmak önemlidir erişim denetimi seçeneklerini, (Firebase Authentication ve Cloud Storage Security Rules yerine).

API'ler

Cloud Storage için Firebase SDK'larına ek olarak, kullanabileceğiniz başka yöntemler de vardır. depoladığınız veri miktarına bağlı olarak, Cloud Storage paketinizde depolanan verilere erişmek için düşünmelisiniz. Verilere bir sunucu üzerinden erişiyorsanız JSON ve S3 uyumlu bir XML RESTful API'si ya da veya yönetimle ilgili diğer görevleri yerine getirmek isterseniz, komut satırı aracını kullanın.

Google Cloud sunucu SDK'sı

Google Cloud, bazı uygulamalar için yüksek kaliteli sunucu SDK'ları sunar Cloud Storage dahil olmak üzere bulut ürünleri. Bu kütüphanelerin kullanılabileceği yerler Düğüm.js Java, git, Python, PHP, ve Ruby.

Yükleme talimatları, kimlik doğrulama ve sorunları gidermek için yukarıda bağlantısı verilen platforma özel dokümanlara bakın.

Google Cloud Storage SDK'sı için örnek kullanım aşağıda gösterilmiştir:

Node.js

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

    // Enable Cloud 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 Cloud 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();
    

Go

    // Enable Cloud 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 Cloud 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 Cloud 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');
    

Ruby

    # Require gcloud
    require "google/cloud"

    # Enable Cloud 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}"
    

REST API

İstemci kitaplığı olmayan bir dil kullanıyorsanız ya da kullanmak istediğiniz favori HTTP istemcisini kullanmayı tercih ederseniz Google Cloud Storage, hem JSON ve XML.

Cloud Storage paketlerini yönetmek için bu depolama verilerine erişim API'lerine ek olarak Firebase projelerinde kullanmak üzere Cloud Storage for Firebase API'yi kullanabilirsiniz.

gsutil

gsutil bir komuttur Cloud Storage için doğrudan erişim sağlayan çizgi aracını kullanın. gsutil kullanabilirsiniz şunları içeren çok çeşitli paket ve nesne yönetimi görevlerini yerine getirmek için:

  • Nesneleri yükleme, indirme ve silme.
  • Paketleri ve nesneleri listeleme.
  • Nesneleri taşıma, kopyalama ve yeniden adlandırma.
  • Nesne ve paket EKL'lerini düzenleme.

gsutil, başka gelişmiş işlemlere (ör. dosya taşıma) olanak tanır. veya belirli bir konumun altındaki tüm dosyaları silebilirsiniz.

Tüm dosyaları bir referanstan diğerine taşımak aşağıdaki kadar kolaydır:

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

Bir referansın altındaki tüm dosyaları toplu olarak silmek de benzer bir işlemdir:

# 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

.

Ücret İsteyin

Google Cloud Storage, otomatik ölçeklendirme kullanan, yüksek düzeyde ölçeklenebilir bir hizmettir çok yüksek istek oranlarına ulaşmanızı sağlar.

Google Cloud Storage, çok kiracılı bir hizmettir. Yani kullanıcılar, aynı temel kaynağı vardır. Bu araçlardan en verimli şekilde paylaşılan kaynaklar, paketlerin başlangıçtaki KS kapasitesi vardır.

Cloud Storage for Firebase hizmetini uygulamanıza entegre etmeyi planlarken şunları göz önünde bulundurun: uygulamanızın iyi bir performans için ihtiyaç duyduğu minimum istek oranını verimli bir şekilde yönetmenizi sağlar. İstek oranlarıyla ilgili kuralları inceleyin. Özellikle istek oranlarını artırma.

Nesnede Sürüm Oluşturma

Bir şeyi yanlışlıkla sildiğiniz halde yedeğinizin olmadığı oldu mu? Google Cloud Storage destekler Nesne Sürümü Oluşturma, Bu da verilerinizi otomatik olarak yedekleyip bu verilerden geri yüklemek için yedekler. Nesnede Sürüm Oluşturma'yı gsutil versioning set kullanarak etkinleştirebilirsiniz komut:

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

Cloud Storage her zaman en son sürümü alır. bir nesneyi geri yüklemek için yukarıdaki diğer API'lerden veya araçlardan birini kullanmanız gerekir en yeni olanı seçin.

Nesne Yaşam Döngüsü Yönetimi

Eski dosyaları otomatik olarak arşivleme veya silme özelliğinin olması, bu özelliği kullanabilirsiniz. Neyse ki Google Cloud Storage, Nesne Yaşam Döngüsü Yönetimi, Bu özellik, nesneleri belirli bir süre sonra silmenize veya arşivlemenize olanak tanır.

Tüm fotoğrafların silinmesini istediğiniz bir fotoğraf paylaşım uygulaması kullanmayı düşünün inceleyebilirsiniz. Aşağıdaki şekilde nesne yaşam döngüsü politikası oluşturabilirsiniz:

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

Ardından gsutil lifecycle set komutunu kullanarak dağıtın:

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

Bunun paketteki tüm dosyalar için geçerli olduğunu unutmayın. Bu nedenle, uzun süre saklamak istediğiniz önemli kullanıcı yedeklemelerini her gün silmek istediğiniz yan fotoğraflar varsa, iki ayrı fotoğraf içe aktarma adımlarını uygulayın veya gsutil ya da kendi sunucunuzla manuel olarak silme işlemi gerçekleştirin.

App Engine

App Engine, bir "Hizmet Olarak Platform"dur arka ucu otomatik olarak ölçeklendiren bir mantık yürütmenizi sağlar. Arka ucunuzu yüklemeniz yeterlidir kodunuz ile oluşturabilirsiniz. Google, uygulamanızın kullanılabilirliğini yönetir. için sunucu yok size çok yardımcı olabilir. App Engine, uygulama eklemenin hızlı ve kolay bir yoludur Firebase uygulamanıza ek işlem gücü veya güvenilir yürütme.

Cloud Storage için Firebase SDK'ları, App Engine varsayılan paketini kullanır. Bu nedenle App Engine uygulaması derlerseniz yerleşik App Engine kullanabilirsiniz Firebase ile App Engine arasında veri paylaşımı için API'ler. Bu, özellikle ses kodlama, video kodu dönüştürme ve görüntü dönüşümleri gibi gibi yoğun işlem gerektiren arka plan işlemeleri de vardır.

Java, Python ve işe koyulun Standart ortamlar App Engine için App Engine Images API'yi içerir (Java, Python resmi yeniden boyutlandırma, döndürme, çevirme ve kırpmanın yanı sıra resim sunma URL'si döndürme Bu, Cloudinary ve Imgix'e benzer şekilde istemci tarafı dönüşümlere olanak tanır.

Mevcut bir Google Cloud projesini Firebase'e aktarırken: Firebase'de mevcut App Engine nesnelerini kullanılabilir hale getirmek istiyorsanız, nesneleri üzerinde varsayılan erişim denetimini kullanarak Firebase'in nesnenize erişmesini sağlayabilirsiniz. aşağıdaki komutu gsutil:

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

Bilinen Sorunlar

App Engine uygulamanızı içe aktaramadığınız bilinen iki durum vardır:

  1. Proje eski bir App Engine Datastore Ana/Yardımcısı içeriyor uygulamasını indirin.
  2. Projede alan adı önekli bir proje kimliği bulunur. Örneğin: domain.com:project-1234

Her iki durumda da proje Cloud Storage for Firebase, Firebase'i kullanabilmek için yeni bir Firebase projesi Cloud Storage. Destek Ekibi ile iletişime geçin bu bilgileri sizin için derledik.

Google Cloud Functions (Beta)

Google Cloud Functions, hafif, etkinliğe dayalı, eşzamansız bilgi işlem çözümü olan ihtiyaç duymadan etkinliklere yanıt veren küçük, tek amaçlı işlevler oluşturabilirsiniz. bir sunucu veya çalışma zamanı ortamını yönetebilirsiniz. Bu fonksiyonlar, Videoların kodunu dönüştürme, makine öğrenimini kullanarak görüntüleri sınıflandırma veya senkronize etme Firebase Realtime Database ile meta veriler. Google Haritalar'daki App Engine, Cloud Functions, işletmenizdeki değişikliklere tepki vermenin Cloud Storage.

Google Cloud Vision API

Google Cloud Vision API, bir görselin içeriğini daha iyi anlamak için güçlü bir makine öğrenimi modellerini daha hızlı ve kolay bir şekilde Resimleri hızlı bir şekilde binlerce kategoriden oluşur, resimlerdeki nesneleri ve yüzleri ayrı ayrı tespit eder, görsellerde yer alan basılı kelimeleri bulup okur, rahatsız edici kelimeleri tanımlar hatta görüntü duyarlılığı analizi bile sunar.

Google Cloud Speech API

Vision API'ye benzer şekilde Google Cloud Speech API, geliştiricilerin Cloud Storage içinde depolanan bir ses dosyasından metin çıkarmasına olanak tanır. API, küresel kullanıcılarınızı desteklemek için 80'den fazla dili ve lehçeyi tanır büyütmek açısından önemlidir. Şunlarla birleştirildiğinde: Google Cloud Natural Language API, Bu sayede geliştiriciler hem ham metni ayıklayabilir hem de bu metinden ne anlama geldiğini tahmin edebilir. Küresel bir kitleye ihtiyaç duyuluyorsa bunu Çeviri için Google Çeviri API'si metni 90'dan fazla dile gönderebiliyoruz.