Google Cloud Storage에 Object 다운로드하는 방법

Juheon Oh·2023년 1월 25일
post-thumbnail

상황

  • GCS에 업로드한 여러 파일을 로컬 및 서버에 다운로드해야 함
  • airflow로 해당 기능을 구현

Options

1. GCSToLocalFilesystemOperator

airflow.provider.google이 GCSToLocalFilesystemOperator 기능을 제공하지만
단일 파일에 한정

2. google.cloud python 패키지

google.cloud 패키지를 통해서 구현 가능하지만 번거로움

3. Google Cloud CLI

Google Cloud CLI를 이용하면 한줄로 해결 가능

가이드라인을 참고해서 서버 및 로컬 환경에 Google Cloud CLI를 설치

gsutil -m cp -r gs://{bucket A}/{폴더 a}/ .
# 현 위치에 bucket A의 폴더 a를 다운로드하겠다는 의미
  • 파일이 대용량일수록 -m 옵션 추가해주면 좋음
    • parallel multi-threaded/multi-processing 지원

단일 파일 다운로드 시
gsutil cp gs://{bucket A}/{폴더 a}/{파일 F} .
특정 확장자 파일 다운로드 시
gsutil cp gs://{bucket A}/{폴더 a}/*.png .

0개의 댓글