Google Cloud Storage からファイルをダウンロードする方法

Google Cloud Storage から、pythonスクリプトにより複数ファイルを一括ダウンロードしたときのメモ

1. 認証情報の作成

※ここでは「サービス アカウント」を利用

  • GCPメニューから
      IAMと管理 > サービスアカウント より新規サービスアカウントを作成

  • 作成したサービスアカウントから、サービスアカウントファイルを作成
      操作 > 鍵を作成 > JSON

2. ダウンロードスクリプト 

#クライアントの生成
SCOPES = ['https://www.googleapis.com/auth/devstorage.full_control']
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
client = storage.Client(project=DL_FROM_PROJECT, credentials=credentials)

#バケット
bucket = client.get_bucket(DL_FROM_BUCKET)

#バケット内のファイルリストを取得して、フォルダ以外をダウンロード
all_blobs = list(client.list_blobs(bucket))
for blob in all_blobs:
    blob_name = blob.name
    if blob_name[len(blob_name)-1:len(blob_name)] != '/':
        with open(DL_TO_FOLDER + blob.name, 'wb'as file_obj:
            blob.download_to_file(file_obj)

※SERVICE_ACCOUNT_FILEはサービスアカウントファイルのパス、DL_FROM_PROJECTはGCPのプロジェクト名、DL_FROM_BUCKETバケット名、DL_TO_FOLDER はダウンロード先フォルダを環境に応じて指定する。