Google Cloud Storage (GCS)에 파일 업로드 ~ 로컬 Python으로로드

환경


  • MacOS X 10.14.5 (Mojave)
  • Homebrew 2.2.5
  • Google Cloud SDK 279.0.0
  • gsutil 4.47

  • GCP 계정 등록



    【이미지로 설명】 Google Cloud Platform (GCP) 무료 평가판으로 계정 등록

    Google Cloud SDK 설치



    Google Cloud SDK 설치 ~ 초기화

    프로젝트 만들기



    Google Cloud SDK로 프로젝트 만들기

    버킷 만들기



    $gsutil은 storage를 조작하는 명령입니다.
    $ gsutil mb -l us-central1 gs://バケット名
    

    파일 업로드



    ※ gcs상에 디렉토리가 없는 경우는 작성된다.
    $ gsutil cp ローカルファイルのパス gs://バケット名/ディレクトリ名/ファイル名
    

    서비스 계정 / 서비스 계정 키 만들기



    Python에서 GCS에 액세스할 수 있도록 서비스 계정/서비스 계정 키를 만듭니다.

    서비스 계정 생성


    gcloud iam service-accounts create サービスアカウントネーム \
                                       --display-name サービスアカウントディスプレイネーム \
    



    지금 프로젝트에 연결되어 있는 권한 확인


    gcloud projects get-iam-policy mypj-id
    
    # bindings:
    # - members:
    #   - user:[email protected]
    #   role: roles/owner
    # etag: BwWeTrntoao=
    # version: 1
    

    서비스 계정에 권한 부여



    스토리지 관리자 권한 부여
    gcloud projects add-iam-policy-binding プロジェクトID \
    --member serviceAccount:サービスアカウントネーム@プロジェクトID.iam.gserviceaccount.com \
    --role roles/storage.admin
    



    role 목록



    다시 권한 확인


    gcloud projects get-iam-policy mypj-id
    
    # bindings:
    # - members:
    #   - user:[email protected]
    #   role: roles/owner
    # - members:
    #   - serviceAccount:[email protected]
    #   role: roles/storage.admin
    # etag: BwWeTz6vIBY=
    # version: 1
    

    서비스 계정 키 생성


    $ gcloud iam service-accounts keys create ./service_account_keys/anata_no_key.json \
    --iam-account サービスアカウントネーム@プロジェクトID.iam.gserviceaccount.com
    

    디렉토리 구성


    .
    ├── .env
    ├── service_account_keys/
    │      └── anata_no_key.json
    └── working/
            └── main.py
    

    .env



    환경 변수에 조금 만든 서비스 계정 키의 경로를 설정하기 위해 이런 설명으로.
    ※ 로드 소스 파일(load_dotenv() 하고 있는 파일)로부터의 상대 패스

    .env
    GOOGLE_APPLICATION_CREDENTIALS=./service_account_keys/anata_no_key.json
    

    라이브러리 설치


    google-cloud-storage python-dotenv pandas pip로 설치
    $ pip install google-cloud-storage python-dotenv pandas
    

    파이썬으로 다운로드



    main.py
    import os
    from io import BytesIO
    
    from dotenv import load_dotenv
    from google.cloud import storage
    import pandas as pd
    
    
    # .envの内容を環境変数に設定
    load_dotenv('./.env')
    
    PROJECT_ID = 'anata_no_project_id'
    BUCKET_NAME = 'anata_no_bucket'
    FILE_PATH = 'path/to/dir/train.csv' # gs://バケット名/~以下のパス
    
    client = storage.Client(PROJECT_ID)
    bucket = client.get_bucket(BUCKET_NAME)
    blob = storage.Blob(FILE_PATH, bucket)
    data = blob.download_as_string()
    df = pd.read_csv(BytesIO(data))
    print(df)
    
    # ローカルに保存する場合
    blob.download_to_filename('path/to/local/dir')
    

    df로 표시되면 OK입니다.

    좋은 웹페이지 즐겨찾기