스토리지 버킷 만들기

이 페이지에서는 Cloud Storage 버킷을 만드는 방법을 보여줍니다. 버킷의 개요는 주요 용어를 참조하세요. 요청에 달리 지정되지 않은 경우, 버킷은 US 멀티 리전에 생성되며 기본 스토리지 클래스는 표준 스토리지입니다.

새 저장소 버킷을 만들려면 다음 안내를 따르세요.

Console

  1. Google Cloud Console에서 Cloud Storage 브라우저를 엽니다.
    Cloud Storage 브라우저 열기
  2. 버킷 생성을 클릭하여 버킷 생성 양식을 엽니다.
  3. 새 버킷

  4. 각 단계를 완료하려면 버킷 정보를 입력하고 계속을 클릭합니다.
    • 버킷 이름 요구사항에 따라 이름을 지정합니다.
    • 버킷의 기본 스토리지 클래스를 선택합니다. 버킷에 업로드된 모든 객체에는 기본 스토리지 클래스가 기본적으로 할당됩니다. 그런 다음 버킷 데이터가 영구적으로 저장될 위치를 선택합니다.

      참고: 오른쪽 창에 있는 월별 예상 비용 패널은 선택한 스토리지 클래스와 위치, 예상 데이터 크기 및 작업을 기준으로 버킷의 월별 비용을 추정합니다.

    • 액세스 제어 모델을 선택하여 버킷의 객체에 대한 액세스 제어 방법을 결정합니다.
    • 선택사항으로 버킷 라벨을 추가하고, 보관 정책을 설정하고, 암호화 방법을 선택할 수 있습니다.
  5. 완료를 클릭합니다.

gsutil

gsutil mb 명령어를 사용합니다.

gsutil mb gs://[BUCKET_NAME]/

각 항목의 의미는 다음과 같습니다.

  • [BUCKET_NAME]은 버킷에 지정할 이름이며, 이름 지정 요구사항이 적용됩니다. 예를 들면 my-bucket입니다.

버킷 생성을 더욱 세밀하게 제어하려면 다음 선택적 플래그를 설정합니다.

  • -p: 버킷과 연결할 프로젝트를 지정합니다. 예를 들면 my-project입니다.
  • -c: 버킷의 기본 스토리지 클래스를 지정합니다. 예를 들면 NEARLINE입니다.
  • -l: 버킷의 위치를 지정합니다. 예를 들면 US-EAST1입니다.
  • -b: 버킷에 균일한 버킷 수준 액세스를 사용 설정합니다.

예:

  gsutil mb -p [PROJECT_ID] -c [STORAGE_CLASS] -l [BUCKET_LOCATION] -b on gs://[BUCKET_NAME]/

코드 샘플

의 JSON API 참조에서 확인할 수 있습니다.

C++

자세한 내용은 Cloud Storage C++ API 참조 문서를 확인하세요.

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name) {
  StatusOr<gcs::BucketMetadata> bucket_metadata =
      client.CreateBucket(bucket_name, gcs::BucketMetadata());

  if (!bucket_metadata) {
    throw std::runtime_error(bucket_metadata.status().message());
  }

  std::cout << "Bucket " << bucket_metadata->name() << " created."
            << "\nFull Metadata: " << *bucket_metadata << "\n";
}

C#

자세한 내용은 Cloud Storage C# API 참조 문서를 확인하세요.

public static Bucket StorageCreateBucket(string projectId, string bucketName)
{
    var storage = StorageClient.Create();
    var bucket = storage.CreateBucket(projectId, bucketName);
    Console.WriteLine($"Created {bucketName}.");
    return bucket;
}

Go

자세한 내용은 Cloud Storage Go API 참조 문서를 확인하세요.

ctx := context.Background()
bucket := client.Bucket(bucketName)

ctx, cancel := context.WithTimeout(ctx, time.Second*10)
defer cancel()
if err := bucket.Create(ctx, projectID, &storage.BucketAttrs{
	StorageClass: "COLDLINE",
	Location:     "asia",
}); err != nil {
	return err
}

자바

자세한 내용은 Cloud Storage 자바 API 참조 문서를 확인하세요.

import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.BucketInfo;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageClass;
import com.google.cloud.storage.StorageOptions;

public class CreateBucketWithStorageClassAndLocation {
  public static void createBucketWithStorageClassAndLocation(String projectId, String bucketName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID to give your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();

    // See the StorageClass documentation for other valid storage classes:
    // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/StorageClass.html
    StorageClass storageClass = StorageClass.COLDLINE;

    // See this documentation for other valid locations:
    // http://g.co/cloud/storage/docs/bucket-locations#location-mr
    String location = "asia";

    Bucket bucket =
        storage.create(
            BucketInfo.newBuilder(bucketName)
                .setStorageClass(storageClass)
                .setLocation(location)
                .build());

    System.out.println(
        "Created bucket "
            + bucket.getName()
            + " in "
            + bucket.getLocation()
            + " with storage class "
            + bucket.getStorageClass());
  }
}

Node.js

자세한 내용은 Cloud Storage Node.js API 참조 문서를 확인하세요.

/**
 * TODO(developer): Uncomment the following line before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

async function createBucket() {
  // Creates a new bucket in the Asia region with the coldline default storage
  // class. Leave the second argument blank for default settings.
  //
  // For default values see: https://cloud.google.com/storage/docs/locations and
  // https://cloud.google.com/storage/docs/storage-classes

  const [bucket] = await storage.createBucket(bucketName, {
    location: 'ASIA',
    storageClass: 'COLDLINE',
  });

  console.log(`Bucket ${bucket.name} created.`);
}

createBucket().catch(console.error);

PHP

자세한 내용은 Cloud Storage PHP API 참조 문서를 확인하세요.

use Google\Cloud\Storage\StorageClient;

/**
 * Create a Cloud Storage Bucket.
 *
 * @param string $bucketName name of the bucket to create.
 * @param string $options options for the new bucket.
 *
 */
function create_bucket($bucketName, $options = [])
{
    $storage = new StorageClient();
    $bucket = $storage->createBucket($bucketName, $options);
    printf('Bucket created: %s' . PHP_EOL, $bucket->name());
}

Python

자세한 내용은 Cloud Storage Python API 참조 문서를 확인하세요.

from google.cloud import storage

def create_bucket(bucket_name):
    """Creates a new bucket."""
    # bucket_name = "your-new-bucket-name"

    storage_client = storage.Client()

    bucket = storage_client.create_bucket(bucket_name)

    print("Bucket {} created".format(bucket.name))

Ruby

자세한 내용은 Cloud Storage Ruby API 참조 문서를 확인하세요.

# bucket_name   = "Name of Google Cloud Storage bucket to create"
# location      = "Location of where to create Cloud Storage bucket"
# storage_class = "Storage class of Cloud Storage bucket"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new
bucket  = storage.create_bucket bucket_name,
                                location:      location,
                                storage_class: storage_class

puts "Created bucket #{bucket.name} in #{location}" +
     " with #{storage_class} class"

REST API

JSON API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용하도록 Playground를 구성합니다.
  2. 다음 정보를 포함하는 .json 파일을 만듭니다.
  3. {
      "name": "[BUCKET_NAME]",
      "location": "[BUCKET_LOCATION]",
      "storageClass": "[STORAGE_CLASS]"
    }

    각 항목의 의미는 다음과 같습니다.

  4. cURL을 사용하여 JSON API를 호출합니다.
    curl -X POST --data-binary @[JSON_FILE_NAME].json \
         -H "Authorization: Bearer [OAUTH2_TOKEN]" \
         -H "Content-Type: application/json" \
         "https://storage.googleapis.com/storage/v1/b?project=[PROJECT_ID]"

    각 항목의 의미는 다음과 같습니다.

    • [JSON_FILE_NAME]는 2단계에서 만든 JSON 파일의 이름입니다.
    • [OAUTH2_TOKEN]은 1단계에서 생성한 액세스 토큰입니다.
    • [PROJECT_ID]는 버킷과 연결될 프로젝트의 ID입니다. 예를 들면 my-project입니다.

XML API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용하도록 Playground를 구성합니다.
  2. 다음 정보를 포함하는 .xml 파일을 만듭니다.
  3. <CreateBucketConfiguration>
       <LocationConstraint>[BUCKET_LOCATION]</LocationConstraint>
       <StorageClass>[STORAGE_CLASS]</StorageClass>
    </CreateBucketConfiguration>

    각 항목의 의미는 다음과 같습니다.

  4. XML API를 호출하려면 cURL을 사용합니다.
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
         -H "Authorization: Bearer [OAUTH2_TOKEN]" \
         -H "x-goog-project-id: [PROJECT_ID]" \
         "https://storage.googleapis.com/[BUCKET_NAME]"

    각 항목의 의미는 다음과 같습니다.

    • [XML_FILE_NAME]은 2단계에서 만든 XML 파일의 이름입니다.
    • [OAUTH2_TOKEN]은 1단계에서 생성한 액세스 토큰입니다.
    • [PROJECT_ID]는 버킷과 연결될 프로젝트의 ID입니다. 예를 들면 my-project입니다.
    • [BUCKET_NAME]은 버킷에 부여할 이름이며, 이름 지정 요구사항이 적용됩니다. 예를 들면 my-bucket입니다.

다음 단계