node.jsでつくったアプリで、GCSからファイルをダウンロードしたい
@google-cloud/storage
を使う
APIドキュメントは以下
https://googleapis.dev/nodejs/storage/latest/File.html#download
サンプル実装
import { Storage } from "@google-cloud/storage"; import configs from "../configs"; const storage = new Storage({ 'keyFilename': configs.keyFilename }); const bucket = storage.bucket(configs.bucketName); const file = bucket.file(configs.fileName); const data = await file.download(); const result = JSON.parse(data[0].toString("UTF-8"));
ローカルで実行する
ローカルで実行するにはこのままではできないので、事前にGCPの管理コンソールでストレージ管理者権限をつけたサービスアカウントを作成しておく
そして、アプリのルートディレクトで以下を実行し、キーファイルをダウンロードする
$ gcloud iam service-accounts keys create my-service-account.json --iam-account my-service-account@my-gcp-project-id.iam.gserviceaccount.com
最後に、上のサンプルコードのconfigsを以下のように設定するとローカルで実行することができる
{ projectId: "my-gcp-project-id", keyFilename: "my-service-account.json" }