# 버킷 생성gsutil mb gs://my-bucketgcloud storage buckets create gs://my-bucket --location=asia-northeast3# 파일 업로드gsutil cp localfile.txt gs://my-bucket/gsutil cp -r ./dir gs://my-bucket/# 파일 다운로드gsutil cp gs://my-bucket/file.txt .# 파일 목록gsutil ls gs://my-bucket/gsutil ls -la gs://my-bucket/ # 크기·날짜 포함# 삭제gsutil rm gs://my-bucket/file.txtgsutil rm -r gs://my-bucket/dir/# 동기화gsutil rsync -r ./local gs://my-bucket/remote# 공개 접근 설정gsutil acl ch -u AllUsers:R gs://my-bucket/file.txt
Python SDK
from google.cloud import storageclient = storage.Client()# 버킷 접근bucket = client.bucket("my-bucket")# 업로드blob = bucket.blob("path/to/file.txt")blob.upload_from_filename("localfile.txt")# 다운로드blob.download_to_filename("downloaded.txt")# 서명된 URL (임시 접근)url = blob.generate_signed_url( expiration=3600, # 1시간 method="GET")# 목록 조회blobs = client.list_blobs("my-bucket", prefix="data/")for b in blobs: print(b.name, b.size)
IAM & 보안
# 서비스 계정에 권한 부여gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectViewer"# 버킷 수준 IAMgsutil iam ch serviceAccount:sa@PROJECT_ID.iam.gserviceaccount.com:objectAdmin gs://my-bucket
주요 역할
역할
권한
storage.admin
전체 관리
storage.objectAdmin
객체 CRUD
storage.objectViewer
객체 읽기
storage.objectCreator
객체 쓰기만
버전 관리 & 수명 주기
# 버전 관리 활성화gsutil versioning set on gs://my-bucket# 수명 주기 정책 (lifecycle.json){ "lifecycle": { "rule": [{ "action": {"type": "SetStorageClass", "storageClass": "NEARLINE"}, "condition": {"age": 30} }] }}gsutil lifecycle set lifecycle.json gs://my-bucket