gcloud 도구로 객체 스토리지 탐색

이 페이지는 gcloud 명령줄 도구를 사용하여 Cloud Storage에서 기본 태스크를 수행하는 방법을 설명합니다.

Cloud Storage에서 발생하는 비용은 사용한 리소스에 따라 결정됩니다. 이 빠른 시작은 일반적으로 $0.01 USD 미만의 Cloud Storage 리소스를 사용합니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 프로젝트 만들기를 클릭하여 새 Google Cloud 프로젝트 만들기를 시작합니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Google Cloud CLI를 설치합니다.
  5. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  6. Google Cloud Console의 프로젝트 선택기 페이지에서 프로젝트 만들기를 클릭하여 새 Google Cloud 프로젝트 만들기를 시작합니다.

    프로젝트 선택기로 이동

  7. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  8. Google Cloud CLI를 설치합니다.
  9. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init

버킷 만들기

버킷은 Cloud Storage에서 데이터를 보관하는 기본 컨테이너입니다.

버킷을 만드는 방법은 다음과 같습니다.

  1. 터미널 창을 엽니다.
  2. gcloud storage buckets create 명령어와 고유한 이름을 사용하여 버킷을 만듭니다.

    gcloud storage buckets create gs://my-awesome-bucket/ --uniform-bucket-level-access

    여기서는 'my-awesome-bucket'이라는 이름의 버킷을 사용합니다. 전역적으로 고유한 버킷 이름을 직접 선택해야 합니다.

    성공하면 명령어가 다음을 반환합니다.

    Creating gs://my-awesome-bucket/...

이제 데이터를 저장할 수 있는 버킷을 만들었습니다.

Creating gs://my-awesome-bucket/...
ServiceException: 409 Bucket my-awesome-bucket already exists.

다른 버킷 이름으로 다시 시도하세요.

버킷에 객체 업로드

버킷에 업로드할 새끼 고양이의 이미지입니다.

  1. 위의 이미지를 마우스 오른쪽 버튼으로 클릭하고 바탕화면과 같은 컴퓨터의 특정 위치에 저장합니다.

  2. gcloud storage cp 명령어를 사용하여 이미지를 저장한 위치에서 생성된 버킷으로 복사합니다.

    gcloud storage cp Desktop/kitten.png gs://my-awesome-bucket

    성공하면 명령어가 다음을 반환합니다.

    Copying file://Desktop/kitten.png [Content-Type=image/png]...
    Uploading   gs://my-awesome-bucket/kitten.png:       0 B/164.3 KiB
    Uploading   gs://my-awesome-bucket/kitten.png:       164.3 KiB/164.3 KiB

    이제 객체가 버킷에 저장되었습니다.

버킷에서 객체 다운로드

  1. gcloud storage cp 명령어를 사용하여 버킷에 저장된 이미지를 데스크톱과 같은 컴퓨터의 다른 위치로 다운로드합니다.

    gcloud storage cp gs://my-awesome-bucket/kitten.png Desktop/kitten2.png

    성공하면 명령어가 다음을 반환합니다.

    Copying gs://my-awesome-bucket/kitten.png...
    Downloading file://Desktop/kitten2.png:               0 B/164.3 KiB
    Downloading file://Desktop/kitten2.png:               164.3 KiB/164.3 KiB

    이제 버킷에서 파일을 다운로드했습니다.

버킷의 폴더에 객체 복사

  1. gcloud storage cp 명령어를 사용하여 폴더를 만들고 폴더에 이미지를 복사합니다.

    gcloud storage cp gs://my-awesome-bucket/kitten.png gs://my-awesome-bucket/just-a-folder/kitten3.png

    성공하면 명령어가 다음을 반환합니다.

    Copying gs://my-awesome-bucket/kitten.png [Content-Type=image/png]...
    Copying     ...my-awesome-bucket/just-a-folder/kitten3.png: 164.3 KiB/164.3 KiB

    이제 버킷의 새 폴더에 이미지를 복사했습니다.

버킷 또는 폴더 콘텐츠 목록 표시하기

  1. gcloud storage ls 명령어를 사용하여 버킷의 최상위 수준에 있는 콘텐츠를 나열합니다.

    gcloud storage ls gs://my-awesome-bucket

    성공하면 명령어가 다음과 유사한 메시지를 반환합니다.

    gs://my-awesome-bucket/kitten.png
    gs://my-awesome-bucket/just-a-folder/

    이제 버킷의 최상위 수준에서 콘텐츠를 확인할 수 있습니다.

객체 세부정보 표시하기

  1. gcloud storage ls 명령어와 --long 플래그를 함께 사용하여 이미지 중 하나에 대한 일부 세부정보를 가져옵니다.

    gcloud storage ls gs://my-awesome-bucket/kitten.png --long

    성공하면 명령어가 다음과 유사한 메시지를 반환합니다.

    2638  2016-02-26T23:05:14Z  gs://my-awesome-bucket/kitten.png
    TOTAL: 1 objects, 168243.2 bytes (164.3 KiB)

    이제 이미지 크기와 생성 날짜에 대한 정보를 가져왔습니다.

객체를 공개적으로 액세스 가능하도록 설정

  1. gcloud storage buckets add-iam-policy-binding 명령어를 사용하여 모든 사용자가 버킷에 저장된 이미지를 읽을 수 있는 권한을 부여합니다.

    gcloud storage buckets add-iam-policy-binding gs://my-awesome-bucket --member=allUsers --role=roles/storage.objectViewer

    응답에 다음이 포함되어 있으면 명령어가 성공한 것입니다.

    bindings:
      - members:
        - allUsers
        role: roles/storage.objectViewer
    

    이제 누구나 이미지를 가져올 수 있습니다.

  2. 이 액세스 권한을 삭제하려면 다음 명령어를 사용합니다.

    gcloud storage buckets remove-iam-policy-binding gs://my-awesome-bucket --member=allUsers --role=roles/storage.objectViewer

    오류가 반환되지 않으면 명령어가 성공한 것입니다.

    버킷에 있는 이미지에 대한 공개 액세스 권한을 삭제했습니다.

특정 사용자에게 버킷 액세스 권한 부여

  1. gcloud storage buckets add-iam-policy-binding 명령어를 사용하여 버킷에 객체를 추가할 수 있는 특정 이메일 주소 권한을 부여합니다.

    gcloud storage buckets add-iam-policy-binding gs://my-awesome-bucket --member=user:jane@gmail.com --role=roles/storage.objectCreator

    응답에 다음이 포함되어 있으면 명령어가 성공한 것입니다.

    bindings:
      - members:
        - user:jane@gmail.com
        role: roles/storage.objectCreator
    

    이제 다른 사용자가 버킷에 항목을 추가할 수 있습니다.

  2. 이 권한을 삭제하려면 다음 명령어를 사용합니다.

    gcloud storage buckets remove-iam-policy-binding gs://my-awesome-bucket --member=user:jane@gmail.com --role=roles/storage.objectCreator

    오류가 반환되지 않으면 명령어가 성공한 것입니다.

    이 버킷에 대한 사용자 액세스 권한을 삭제했습니다.

객체 삭제

  1. gcloud storage rm 명령어를 사용하여 이미지 중 하나를 삭제합니다.

    gcloud storage rm gs://my-awesome-bucket/kitten.png

    성공하면 명령어가 다음을 반환합니다.

    Removing gs://my-awesome-bucket/kitten.png...

    이 이미지 사본은 더 이상 Cloud Storage에 저장되어 있지 않습니다(just-a-folder/ 폴더에 복사한 사본은 여전히 존재함).

삭제

이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.

  1. 터미널 창을 엽니다(열려 있지 않은 경우).
  2. --recursive 플래그와 함께 gcloud storage rm 명령어를 사용하여 버킷과 해당 콘텐츠를 삭제합니다.

    gcloud storage rm gs://my-awesome-bucket --recursive

    성공하면 명령어가 다음과 유사한 메시지를 반환합니다.

    Removing gs://my-awesome-bucket/just-a-folder/cloud-storage.logo.png#1456530077282000...
    Removing gs://my-awesome-bucket/...

    버킷과 콘텐츠가 삭제되었습니다.

다음 단계