Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Admin Cloud Storage API 소개

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Firebase용 Cloud Storage는 고가용성과 글로벌 중복성을 갖춘 엑사바이트 규모의 객체 스토리지 솔루션인 Google Cloud Storage 버킷에 데이터를 저장합니다. Firebase Admin SDK를 사용하면 권한 있는 환경에서 Cloud Storage 버킷에 직접 액세스할 수 있습니다. 그런 다음 Google Cloud Storage API 를 사용하여 버킷에 저장된 객체를 조작할 수 있습니다.

기본 버킷 사용

Admin SDK를 초기화할 때 기본 버킷 이름을 지정할 수 있습니다. 그런 다음 이 버킷에 대한 인증된 참조를 검색할 수 있습니다. 버킷 이름에는 gs:// 또는 기타 프로토콜 접두사가 포함되어서는 안 됩니다. 예를 들어 Firebase 콘솔 에 표시되는 버킷 URL이 gs://bucket-name.appspot.com bucket-name.appspot.com 경우 버킷 이름.appspot.com 문자열을 Admin SDK에 전달합니다.

Node.js

const { initializeApp, cert } = require('firebase-admin/app');
const { getStorage } = require('firebase-admin/storage');

const serviceAccount = require('./path/to/serviceAccountKey.json');

initializeApp({
  credential: cert(serviceAccount),
  storageBucket: '<BUCKET_NAME>.appspot.com'
});

const bucket = getStorage().bucket();

// 'bucket' is an object defined in the @google-cloud/storage library.
// See https://googlecloudplatform.github.io/google-cloud-node/#/docs/storage/latest/storage/bucket
// for more details.

자바

FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
    .setStorageBucket("<BUCKET_NAME>.appspot.com")
    .build();
FirebaseApp.initializeApp(options);

Bucket bucket = StorageClient.getInstance().bucket();

// 'bucket' is an object defined in the google-cloud-storage Java library.
// See http://googlecloudplatform.github.io/google-cloud-java/latest/apidocs/com/google/cloud/storage/Bucket.html
// for more details.

파이썬

import firebase_admin
from firebase_admin import credentials
from firebase_admin import storage

cred = credentials.Certificate('path/to/serviceAccountKey.json')
firebase_admin.initialize_app(cred, {
    'storageBucket': '<BUCKET_NAME>.appspot.com'
})

bucket = storage.bucket()

# 'bucket' is an object defined in the google-cloud-storage Python library.
# See https://googlecloudplatform.github.io/google-cloud-python/latest/storage/buckets.html
# for more details.

가다

import (
	"context"
	"log"

	firebase "firebase.google.com/go/v4"
	"firebase.google.com/go/v4/auth"
	"google.golang.org/api/option"
)

config := &firebase.Config{
	StorageBucket: "<BUCKET_NAME>.appspot.com",
}
opt := option.WithCredentialsFile("path/to/serviceAccountKey.json")
app, err := firebase.NewApp(context.Background(), config, opt)
if err != nil {
	log.Fatalln(err)
}

client, err := app.Storage(context.Background())
if err != nil {
	log.Fatalln(err)
}

bucket, err := client.DefaultBucket()
if err != nil {
	log.Fatalln(err)
}
// 'bucket' is an object defined in the cloud.google.com/go/storage package.
// See https://godoc.org/cloud.google.com/go/storage#BucketHandle
// for more details.

공식 Google Cloud Storage 클라이언트 라이브러리 와 함께 Admin SDK에서 반환된 버킷 참조를 사용하여 Firebase 프로젝트와 연결된 버킷의 콘텐츠를 업로드, 다운로드 및 수정할 수 있습니다. Firebase Admin SDK를 사용할 때는 Google Cloud Storage 라이브러리를 인증할 필요가 없습니다. Admin SDK에서 반환한 버킷 참조는 이미 Firebase 앱을 초기화하는 데 사용된 사용자 인증 정보로 인증되었습니다.

커스텀 버킷 사용

위에 제공된 기본값 이외의 Cloud Storage 버킷을 사용하거나 단일 앱에서 여러 Cloud Storage 버킷을 사용하려는 경우 아래와 같이 맞춤 버킷에 대한 참조를 검색할 수 있습니다.

Node.js

const bucket = getStorage().bucket('my-custom-bucket');

자바

Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");

파이썬

bucket = storage.bucket('my-custom-bucket')

가다

 bucket, err := client.Bucket("my-custom-bucket")

맞춤 Firebase 앱 사용

여러 Firebase 앱 과 상호작용하는 더 복잡한 애플리케이션을 빌드하는 경우 다음과 같이 특정 Firebase 앱과 연결된 Cloud Storage 버킷에 액세스할 수 있습니다.

Node.js

const bucket = getStorage(customApp).bucket();

자바

Bucket bucket = StorageClient.getInstance(customApp).bucket();

파이썬

bucket = storage.bucket(app=custom_app)

가다

otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")

Google Cloud Storage 클라이언트 라이브러리

Firebase Admin SDK는 Google Cloud Storage 클라이언트 라이브러리 에 의존하여 Cloud Storage 액세스를 제공합니다. Admin SDK에서 반환한 버킷 참조는 이러한 라이브러리에 정의된 객체입니다. 파일 업로드다운로드 와 같은 사용 사례에서 반환된 버킷 참조를 사용하는 방법을 알아보려면 Google Cloud Storage 클라이언트 라이브러리의 문서 및 API 참조를 참조하세요.