콘솔로 이동

iOS에서 시작하기

Firebase용 Cloud Storage를 사용하면 이미지 및 동영상 등의 사용자 제작 콘텐츠를 업로드 및 공유하여 앱에 리치 미디어 콘텐츠를 도입할 수 있습니다. 데이터는 고가용성과 글로벌 중복성을 갖춘 엑사바이트급 객체 저장소 솔루션인 Google Cloud Storage 버킷에 저장됩니다. Cloud Storage를 이용하면 이러한 파일을 휴대기기 및 웹브라우저에서 직접 안전하게 업로드할 수 있으며, 네트워크가 불안정해도 문제가 없습니다.

필수 조건

  1. Firebase SDK를 설치합니다.
  2. Firebase 콘솔에서 Firebase 프로젝트에 앱을 추가합니다.

공개 액세스 설정

Firebase용 Cloud Storage가 제공하는 선언적 규칙 언어로 데이터의 구조, 색인 생성 방법, 데이터를 읽거나 쓸 수 있는 조건을 정의할 수 있습니다. 기본적으로 저장소에 대한 읽기 및 쓰기 액세스는 인증된 사용자만 가능하도록 제한됩니다. 공개 액세스에 대한 규칙을 구성하면 인증을 설정하지 않고 시작할 수 있습니다.

이렇게 하면 앱을 사용하지 않는 사람을 포함하여 모두에게 저장소가 공개되므로 인증을 설정할 때 저장소를 다시 제한해야 합니다.

앱에 Cloud Storage 추가

프로젝트의 Podfile에 다음 종속 항목이 있어야 합니다.

pod 'Firebase/Core'
pod 'Firebase/Storage'

pod install을 실행하고 생성된 .xcworkspace 파일을 엽니다.

Cloud Storage 설정

Firebase 참조를 만들거나 사용하려면 우선 Firebase를 초기화해야 합니다. 다른 Firebase 기능을 위해 이 단계를 이미 수행했다면 건너뛰어도 무방합니다.

  1. UIApplicationDelegate에서 Firebase 모듈을 가져옵니다.

    Swift

    import Firebase
    

    Objective-C

    @import Firebase;
    
  2. FirebaseApp 공유 인스턴스는 일반적으로 애플리케이션의 application:didFinishLaunchingWithOptions: 메소드에서 구성합니다.

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. 기본 Firebase 앱을 사용하여 저장소 서비스를 가리키는 참조를 가져옵니다.

    Swift

    let storage = Storage.storage()

    Objective-C

    FIRStorage *storage = [FIRStorage storage];

이제 Cloud Storage를 사용할 준비가 끝났습니다.

먼저 Cloud Storage 참조를 만드는 방법을 알아보겠습니다.

고급 설정

다음 사용 사례에는 추가 설정이 필요합니다.

첫 번째 사용 사례는 사용자가 전 세계에 분포해 있고 사용자와 가까운 곳에 데이터를 저장하려는 경우에 적합합니다. 예를 들어 미국, 유럽, 아시아에 버킷을 만들고 해당 지역 사용자의 데이터를 저장하면 대기 시간을 줄일 수 있습니다.

두 번째 사용 사례는 데이터의 액세스 패턴이 다양할 때 유용합니다. 예를 들어 사진과 같은 자주 액세스하는 콘텐츠를 저장하는 다중 지역 또는 지역 버킷을 설정하고, 사용자 백업과 같은 자주 액세스하지 않는 콘텐츠를 저장하는 Nearline 또는 Coldline 버킷을 설정할 수 있습니다.

이러한 두 사용 사례에는 여러 저장소 버킷을 사용하는 것이 좋습니다.

세 번째 사용 사례는 Google 드라이브와 같이 사용자가 여러 개의 계정(예: 개인용 계정과 업무용 계정)으로 로그인할 수 있는 앱을 개발할 때 유용합니다. 맞춤 Firebase 앱 인스턴스를 사용하여 추가 계정을 각각 인증할 수 있습니다.

여러 저장소 버킷 사용

위에 제공된 기본값 이외의 저장소 버킷을 사용하거나 단일 앱에서 여러 저장소 버킷을 사용하려는 경우 맞춤 버킷을 참조하는 FIRStorage 인스턴스를 만들 수 있습니다.

Swift

// Get a non-default Storage bucket
storage = Storage.storage(url:"gs://my-custom-bucket")
    

Objective-C

// Get a non-default Storage bucket
FIRStorage storage = [FIRStorage storageWithURL:@"gs://my-custom-bucket"];
    

가져온 버킷 활용하기

기존 Cloud Storage 버킷을 Firebase로 가져오는 경우 Google Cloud SDK에 포함된 gsutil 도구를 사용하여 Firebase가 해당 파일을 액세스할 수 있도록 권한을 부여해야 합니다.

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

새로 생성된 버킷은 액세스 제어가 기본으로 Firebase를 허용하도록 설정되어 있으므로 이에 영향을 받지 않습니다. 이는 일시적인 조치이며 앞으로는 자동으로 수행될 예정입니다.

맞춤 Firebase 앱 사용

맞춤 FirebaseApp을 사용하여 보다 복잡한 앱을 개발하는 경우 해당 앱으로 초기화된 Storage 인스턴스를 만들 수 있습니다.

Swift

// Get the default bucket from a custom FirebaseApp
storage = Storage.storage(app:customApp)

// Get a non-default bucket from a custom FirebaseApp
storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
    

Objective-C

// Get the default bucket from a custom FIRApp
FIRStorage storage = [FIRStorage storageForApp:customApp];

// Get a non-default bucket from a custom FIRApp
FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];