Firebase Storage에 bucket 추가

모티프


Firebase를 사용하기 시작하면 클라우드 스토어의 버킷이 마음대로 발견되며, 특히 아무 생각 없이 사용할 수 있다.
그러나 모든 버킷의 권한을 관리하고 싶을 때 생명주기에 임시적인 버킷을 사용하고 싶을 때 버킷 자체를 늘리고 싶은 경우도 있을 거라고 생각합니다.
Firebase SDK 문서에도 다른 버킷을 사용한 코드가 기재돼 있지만, 룰즈를 개별적으로 관리하는 방법 등 조금 고민되는 부분이 있어 기사를 쓰기로 했다.

버킷 추가


コンソール
오른쪽 위에 있는 세 개의 아이콘을 누릅니다.
bucket を追加ボタン
우선 버킷 추가는 간단하다.콘솔을 열고 Storage로 이동하는 페이지에서 오른쪽 상단에 있는 세 개의 아이콘을 누르면 '구간 추가' 단추가 표시됩니다. 그곳에서 기존 버킷을 사용하거나 새로 만들 수 있습니다.
Bucket을 추가하려면 Blaze 프로그램이 필요합니다.

각각 Rules 적용


콘솔에서 Rules를 붙여 쓰는 경우 이 섹션을 건너뛰십시오.
내가 고민하는 것은 이 부분이다.현재 프로젝트는 ***-production***-staging 두 개의 환경이 있는데 각각 두 개의 버킷이 있다.이 경우 Firebase CLI가 Rules를 어떻게 설계하는지 몰라서 한동안 고민이 많았어요.
그 결과 .firebasercfirebase.json에서 다음과 같은 기술을 하면 각각 Rules를 적용할 수 있다.
.firebaserc
{
  "projects": {
    "staging": "***-staging",
    "production": "***-production"
  },
  "targets": {
    "***-staging": {
      "storage": {
        "bucket-group-1": [
          "***-staging-bucket-1"
        ],
        "bucket-group-2": [
          "***-staging-bucket-2"
        ]
      }
    },
    "***-production": {
      "storage": {
        "bucket-group-1": [
          "***-production-bucket-1"
        ],
        "bucket-group-2": [
          "***-production-bucket-2"
        ]
      }
    }
  }
}
우선 이런 느낌으로 디자인 목표를 설정한다.이 설정문서의 이 섹션에는 CLI에서 설정한 내용이 기재돼 있으며, 그 결과 이 같은 내용이 추가.firebaserc된 것과 같다.
다음은 firebase.json에 각 그룹에 어떤 규칙에 적응하는지 기록한다.
firebase.json
{
  "storage": [
    {
      "target": "bucket-group-1",
      "rules": "storage.group1.rules"
    },
    {
      "target": "bucket-group-2",
      "rules": "storage.group2.rules"
    }
  ],
}
이렇게 하면 각자의 Rules를 읽은 후에 설계를 진행할 수 있다.

고객으로부터 Bucket 전환


기본 (init에서 자동으로 적응하기 시작하는) 버킷에 대해서는 아무것도 고려하지 않습니다.
const storage = firebase.storage();
에서 사용할 수 있습니다.추가 버킷 정보
const storage = firebase.app().storage("gs://bucket-name");
면 사용 가능합니다.주의점은 버킷 이름의 시작에 gs://를 주어야 한다는 것이다.뒤에 있는 admin SDK는 이걸 필요로 하지 않기 때문에 혼동점입니다.

Admin SDK에서 Bucket 전환


기본 버킷
const storage = admin.storage();
이렇게 하면 됩니다.추가 버킷 정보
const storage = admin.storage().bucket("bucket-name");
이렇게 하면 사용할 수 있습니다.

좋은 웹페이지 즐겨찾기