개발

[GCP] Python에서 GCP Cloud Storage 연동하기

2021. 9. 5. 02:01
목차
  1. 0. 사전준비
  2. 1) GCP 프로젝트, 리소스 생성
  3. 2) Google Could 파이썬 라이브러리 설치
  4. 1. Google Cloud API 인증
  5. 1) 서비스 계정 & 키 만들기
  6. 2) 환경 변수 설정
  7. 3) 인증 확인
  8. 2. Python용 Cloud 클라이언트 라이브러리 활용하기
  9. 1) Python 라이브러리 설치
  10. 2) GCP에 파일 올리기
  11. 3) GCP에서 파일 다운로드

python과 GCP Cloud Storage을 연동시켜 두면 정적인 파일을 주기적으로 관리하기 편리하다. 이를 위해서는 GCP에서 user 인증을 하는 과정, 인증서를 발급받아 연동하는 방법 등을 거쳐야하며 이를 정리하고자 한다.

 

0. 사전준비

1) GCP 프로젝트, 리소스 생성

구글 Cloud Console에서 프로젝트, storage, 그리고 storage에서 bucket을 생성해둔다. 다 되었다면 Cloud Console에서 아래 화면과 같이 보인다.

 

2) Google Could 파이썬 라이브러리 설치

pip install google-cloud-storage

 

 

1. Google Cloud API 인증

공식 가이드 문서는 글로만 설명이 되어 있는데, 화면과 함께 정리하고자 한다.

 

1) 서비스 계정 & 키 만들기

i. 서비스 계정 만들기

Cloud Console에서의 서비스 계정 만들기 페이지로 이동해서 생성하기 시작한다. 아래 화면이 해당 페이지이며 여기서 인증할 프로젝트를 선택한다.

 

이후 '서비스 계정 세부정보'에서 서비스 계정 이름, 설명 등을 입력하면 아래 화면이 나온다. 여기서 역할에 '소유자'를 부여해야 한다(★).

완료를 통해 서비스 계정을 만든다.

 

ii. 서비스 계정 키 만들기

계정 생성 후 '서비스 계정' 화면으로 들어가 생성한 계정을 클릭한다.

 

계정 클릭 후 '키'를 누르고 키 추가를 선택하여 새 키를 만들어준다. 새 키 만들기 버튼을 누르고 json 유형을 선택하고 만들기를 누르면 json 파일이 받아진다. 이를 로컬이나 서버 작업환경에 옮겨둔다.

 

2) 환경 변수 설정

Cloud SDK를 통해 서비스 계정을 사용하려면 코드가 실행되는 환경변수를 설정해야 한다. 

 

아래와 같이 터미널에서 인증을 하거나

# KEY_PATH에 다운로드 받은 json 경로 입력
# ex) "/home/user/Downloads/service-account-file.json"

export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

 

파이썬 코드에서 os를 import하여 환경변수를 설정해준다.

import os

os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="KEY_PATH"

 

3) 인증 확인

아래 코드 실행결과 계정을 생성한 프로젝트의 bucket 목록이 보인다면 제대로 생성된 것이다.

from google.cloud import storage

storage_client = storage.Client()
buckets = list(storage_client.list_buckets())

print(buckets)

 

 

2. Python용 Cloud 클라이언트 라이브러리 활용하기

1) Python 라이브러리 설치

pip install google-cloud-storage

 

2) GCP에 파일 올리기

아래 코드로 GCP에 파일을 올릴 수 있다.

from google.cloud import storage

bucket_name = ''    # 서비스 계정 생성한 bucket 이름 입력
source_file_name = ''    # GCP에 업로드할 파일 절대경로
destination_blob_name = ''    # 업로드할 파일을 GCP에 저장할 때의 이름


storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(destination_blob_name)

blob.upload_from_filename(source_file_name)

 

3) GCP에서 파일 다운로드

아래 코드로 GCP에서 파일을 받을 수 있다.

from google.cloud import storage

bucket_name = ''    # 서비스 계정 생성한 bucket 이름 입력
source_blob_name = ''    # GCP에 저장되어 있는 파일 명
destination_file_name = ''    # 다운받을 파일을 저장할 경로("local/path/to/file")

storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(source_blob_name)

blob.download_to_filename(destination_file_name)
728x90
저작자표시 비영리 동일조건 (새창열림)

'개발' 카테고리의 다른 글

[Miniconda] 가상환경 명령어  (0) 2022.01.18
[FTP] 리눅스 shell script로 FPT 사용하기  (0) 2021.09.23
[jupyter] jupyterthemes로 jupyter notebook 테마 설정하기  (0) 2021.08.29
[MAC] zsh로 miniconda 실행하기(zsh: command not found)  (0) 2021.08.26
[Docker + Flask] 간단한 추론 API 서버 띄우기  (0) 2021.07.08
  1. 0. 사전준비
  2. 1) GCP 프로젝트, 리소스 생성
  3. 2) Google Could 파이썬 라이브러리 설치
  4. 1. Google Cloud API 인증
  5. 1) 서비스 계정 & 키 만들기
  6. 2) 환경 변수 설정
  7. 3) 인증 확인
  8. 2. Python용 Cloud 클라이언트 라이브러리 활용하기
  9. 1) Python 라이브러리 설치
  10. 2) GCP에 파일 올리기
  11. 3) GCP에서 파일 다운로드
'개발' 카테고리의 다른 글
  • [Miniconda] 가상환경 명령어
  • [FTP] 리눅스 shell script로 FPT 사용하기
  • [jupyter] jupyterthemes로 jupyter notebook 테마 설정하기
  • [MAC] zsh로 miniconda 실행하기(zsh: command not found)
Fine애플
Fine애플
이것저것
끄적끄적이것저것
Fine애플
끄적끄적
Fine애플
전체
오늘
어제
  • 분류 전체보기 (167)
    • 논문 및 개념 정리 (27)
    • Pattern Recognition (8)
    • 개발 (57)
    • python 메모 (45)
    • pytorch, tensorflow (5)
    • 알고리즘 (9)
    • Toy Projects (4)
    • 통계이론 (2)
    • Reinforcement Learning (10)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 딥러닝
  • transformer
  • 언어모델
  • pandas
  • Docker
  • Probability
  • container
  • 자연어
  • ubuntu
  • reinforcement learning
  • tensorflow
  • 알고리즘
  • nlp
  • PyTorch
  • Bert
  • BigBird
  • 개발환경
  • GPU
  • python
  • miniconda

최근 댓글

최근 글

hELLO · Designed By 정상우.
Fine애플
[GCP] Python에서 GCP Cloud Storage 연동하기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.