Membuat bucket

Halaman ini menunjukkan cara membuat bucket Cloud Storage. Jika tidak ditentukan dalam permintaan, bucket akan dibuat di multi-region US dan memiliki kelas penyimpanan default Standard Storage.

Peran yang diperlukan

Guna mendapatkan izin yang diperlukan untuk membuat bucket Cloud Storage, minta administrator untuk memberi Anda peran IAM roles/storage.admin pada project.

Peran bawaan ini berisi izin yang diperlukan untuk membuat bucket. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

  • storage.buckets.create
  • storage.buckets.list (hanya diperlukan jika membuat bucket menggunakan Konsol Google Cloud)
  • resourcemanager.projects.get (hanya diperlukan jika membuat bucket menggunakan Konsol Google Cloud)

Anda mungkin juga bisa mendapatkan izin ini dengan peran bawaan lainnya. Untuk mengetahui peran mana yang terkait dengan izin apa, lihat Peran IAM untuk Cloud Storage.

Untuk mengetahui petunjuk tentang cara memberikan peran ke project, baca bagian Mengelola akses ke project.

Buat bucket baru

Konsol

  1. Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.

    Buka Bucket

  2. Klik + Buat.
  3. Di halaman Buat bucket, masukkan informasi bucket Anda. Untuk melanjutkan ke langkah berikutnya, klik Lanjutkan.
    • Untuk Beri nama bucket, masukkan nama yang memenuhi persyaratan nama bucket.
    • Untuk opsi Pilih tempat untuk menyimpan data, pilih Jenis lokasi dan Lokasi tempat data bucket akan disimpan secara permanen.
    • Untuk Pilih kelas penyimpanan untuk data, pilih kelas penyimpanan default untuk bucket, atau pilih Autoclass untuk pengelolaan kelas penyimpanan otomatis untuk data bucket Anda.

      Catatan: Panel Estimasi biaya bulanan di panel kanan memperkirakan biaya bulanan bucket berdasarkan kelas dan lokasi penyimpanan pilihan Anda, serta perkiraan operasi dan ukuran data.

    • Untuk Pilih cara mengontrol akses ke objek, pilih apakah bucket Anda menerapkan pencegahan akses publik atau tidak, lalu pilih model Kontrol akses untuk objek bucket Anda.

      Catatan: Jika pencegahan akses publik sudah diterapkan oleh kebijakan organisasi project Anda, tombol Cegah akses publik akan dikunci.

    • Untuk opsi Pilih cara melindungi data objek, konfigurasikan Alat perlindungan jika diinginkan, lalu pilih metode Enkripsi data.
  4. Klik Buat.

Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Konsol Google Cloud, lihat Pemecahan masalah.

Command line

gcloud

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Dalam lingkungan pengembangan Anda, jalankan perintah gcloud storage buckets create:

    gcloud storage buckets create gs://BUCKET_NAME

    Dengan keterangan:

    • BUCKET_NAME adalah nama yang ingin Anda berikan pada bucket, sesuai dengan persyaratan penamaan. Misalnya, my-bucket.

    Jika permintaan berhasil, perintah akan menampilkan pesan berikut ini:

    Creating gs://BUCKET_NAME/...

    Tetapkan flag opsional berikut untuk memiliki kontrol yang lebih besar atas pembuatan bucket Anda:

    • --project: Menentukan project ID atau nomor project yang akan dikaitkan dengan bucket Anda. Misalnya, my-project.
    • --default-storage-class: Menentukan kelas penyimpanan default bucket Anda. Misalnya, NEARLINE.
    • --location: Menentukan lokasi bucket Anda. Misalnya, US-EAST1.
    • --uniform-bucket-level-access: Mengaktifkan akses level bucket yang seragam untuk bucket Anda.
    • Untuk mengetahui daftar lengkap opsi pembuatan bucket gcloud, lihat opsi buckets create.

    Contoh:

    gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access

gsutil

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Dalam lingkungan pengembangan Anda, jalankan perintah gsutil mb:

    gsutil mb gs://BUCKET_NAME

    Dengan keterangan:

    • BUCKET_NAME adalah nama yang ingin Anda berikan pada bucket, sesuai dengan persyaratan penamaan. Misalnya, my-bucket.

    Jika permintaan berhasil, perintah akan menampilkan pesan berikut ini:

    Creating gs://BUCKET_NAME/...

    Tetapkan flag opsional berikut untuk memiliki kontrol yang lebih besar atas pembuatan bucket Anda:

    • -p: Menentukan project ID atau nomor project yang akan dikaitkan dengan bucket Anda. Misalnya, my-project.
    • -c: Menentukan kelas penyimpanan default bucket Anda. Misalnya, NEARLINE.
    • -l: Menentukan lokasi bucket Anda. Misalnya, US-EAST1.
    • -b: Menentukan setelan akses level bucket yang seragam untuk bucket Anda. Misalnya, ON.
    • Untuk daftar lengkap opsi pembuatan bucket gsutil, lihat opsi mb.

    Contoh:

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

Library Klien

C++

Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.

Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name,
   std::string const& storage_class, std::string const& location) {
  StatusOr<gcs::BucketMetadata> bucket_metadata =
      client.CreateBucket(bucket_name, gcs::BucketMetadata()
                                           .set_storage_class(storage_class)
                                           .set_location(location));
  if (!bucket_metadata) throw std::move(bucket_metadata).status();

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

C#

Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.

Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


using Google.Apis.Storage.v1.Data;
using Google.Cloud.Storage.V1;
using System;

public class CreateRegionalBucketSample
{
    /// <summary>
    /// Creates a storage bucket with region.
    /// </summary>
    /// <param name="projectId">The ID of the project to create the buckets in.</param>
    /// <param name="location">The location of the bucket. Object data for objects in the bucket resides in
    /// physical storage within this region. Defaults to US.</param>
    /// <param name="bucketName">The name of the bucket to create.</param>
    /// <param name="storageClass">The bucket's default storage class, used whenever no storageClass is specified
    /// for a newly-created object. This defines how objects in the bucket are stored
    /// and determines the SLA and the cost of storage. Values include MULTI_REGIONAL,
    /// REGIONAL, STANDARD, NEARLINE, COLDLINE, ARCHIVE, and DURABLE_REDUCED_AVAILABILITY.
    /// If this value is not specified when the bucket is created, it will default to
    /// STANDARD.</param>
    public Bucket CreateRegionalBucket(
        string projectId = "your-project-id",
        string bucketName = "your-unique-bucket-name",
        string location = "us-west1",
        string storageClass = "REGIONAL")
    {
        var storage = StorageClient.Create();
        Bucket bucket = new Bucket
        {
            Location = location,
            Name = bucketName,
            StorageClass = storageClass
        };
        var newlyCreatedBucket = storage.CreateBucket(projectId, bucket);
        Console.WriteLine($"Created {bucketName}.");
        return newlyCreatedBucket;
    }
}

Go

Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.

Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import (
	"context"
	"fmt"
	"io"
	"time"

	"cloud.google.com/go/storage"
)

// createBucketClassLocation creates a new bucket in the project with Storage class and
// location.
func createBucketClassLocation(w io.Writer, projectID, bucketName string) error {
	// projectID := "my-project-id"
	// bucketName := "bucket-name"
	ctx := context.Background()
	client, err := storage.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("storage.NewClient: %w", err)
	}
	defer client.Close()

	ctx, cancel := context.WithTimeout(ctx, time.Second*30)
	defer cancel()

	storageClassAndLocation := &storage.BucketAttrs{
		StorageClass: "COLDLINE",
		Location:     "asia",
	}
	bucket := client.Bucket(bucketName)
	if err := bucket.Create(ctx, projectID, storageClassAndLocation); err != nil {
		return fmt.Errorf("Bucket(%q).Create: %w", bucketName, err)
	}
	fmt.Fprintf(w, "Created bucket %v in %v with storage class %v\n", bucketName, storageClassAndLocation.Location, storageClassAndLocation.StorageClass)
	return nil
}

Java

Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.

Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.

Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// The ID of your GCS bucket
// const bucketName = 'your-unique-bucket-name';

// The name of a storage class
// See the StorageClass documentation for other valid storage classes:
// https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/StorageClass.html
// const storageClass = 'coldline';

// The name of a location
// See this documentation for other valid locations:
// http://g.co/cloud/storage/docs/locations#location-mr
// const location = 'ASIA';

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

// Creates a client
// The bucket in the sample below will be created in the project associated with this client.
// For more information, please see https://cloud.google.com/docs/authentication/production or https://googleapis.dev/nodejs/storage/latest/Storage.html
const storage = new Storage();

async function createBucketWithStorageClassAndLocation() {
  // 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,
    [storageClass]: true,
  });

  console.log(
    `${bucket.name} created with ${storageClass} class in ${location}`
  );
}

createBucketWithStorageClassAndLocation().catch(console.error);

PHP

Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.

Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

use Google\Cloud\Storage\StorageClient;

/**
 * Create a new bucket with a custom default storage class and location.
 *
 * @param string $bucketName The name of your Cloud Storage bucket.
 *        (e.g. 'my-bucket')
 */
function create_bucket_class_location(string $bucketName): void
{
    $storage = new StorageClient();
    $storageClass = 'COLDLINE';
    $location = 'ASIA';
    $bucket = $storage->createBucket($bucketName, [
        'storageClass' => $storageClass,
        'location' => $location,
    ]);

    $objects = $bucket->objects([
        'encryption' => [
            'defaultKmsKeyName' => null,
        ]
    ]);

    printf('Created bucket %s in %s with storage class %s', $bucketName, $storageClass, $location);
}

Python

Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.

Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

from google.cloud import storage

def create_bucket_class_location(bucket_name):
    """
    Create a new bucket in the US region with the coldline storage
    class
    """
    # bucket_name = "your-new-bucket-name"

    storage_client = storage.Client()

    bucket = storage_client.bucket(bucket_name)
    bucket.storage_class = "COLDLINE"
    new_bucket = storage_client.create_bucket(bucket, location="us")

    print(
        "Created bucket {} in {} with storage class {}".format(
            new_bucket.name, new_bucket.location, new_bucket.storage_class
        )
    )
    return new_bucket

Ruby

Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.

Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

def create_bucket_class_location bucket_name:
  # The ID to give your GCS bucket
  # bucket_name = "your-unique-bucket-name"

  require "google/cloud/storage"

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

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

Terraform

Anda dapat menggunakan resource Terraform untuk membuat bucket penyimpanan.

# Create new storage bucket in the US multi-region
# with coldline storage
resource "random_id" "bucket_prefix" {
  byte_length = 8
}

resource "google_storage_bucket" "static" {
  name          = "${random_id.bucket_prefix.hex}-new-bucket"
  location      = "US"
  storage_class = "COLDLINE"

  uniform_bucket_level_access = true
}

REST API

JSON API

  1. Dapatkan token akses otorisasi dari OAuth 2.0 Playground. Konfigurasikan Playground agar menggunakan kredensial OAuth Anda sendiri. Untuk mendapatkan petunjuk, lihat Autentikasi API.
  2. Buat file JSON yang berisi setelan untuk bucket, yang harus menyertakan name untuk bucket. Lihat dokumentasi Buckets:Insert untuk daftar lengkap setelan. Berikut adalah setelan umum yang dapat disertakan:
  3. {
      "name": "BUCKET_NAME",
      "location": "BUCKET_LOCATION",
      "storageClass": "STORAGE_CLASS",
      "iamConfiguration": {
        "uniformBucketLevelAccess": {
          "enabled": true
        },
      }
    }

    Dengan keterangan:

    • BUCKET_NAME adalah nama yang ingin Anda berikan pada bucket, sesuai dengan persyaratan penamaan. Misalnya, my-bucket.
    • BUCKET_LOCATION adalah lokasi tempat Anda ingin menyimpan data objek bucket. Misalnya, US-EAST1.
    • STORAGE_CLASS adalah kelas penyimpanan default untuk bucket Anda. Misalnya, NEARLINE.
  4. Gunakan cURL untuk memanggil JSON API:
    curl -X POST --data-binary @JSON_FILE_NAME \
         -H "Authorization: Bearer OAUTH2_TOKEN" \
         -H "Content-Type: application/json" \
         "https://storage.googleapis.com/storage/v1/b?project=PROJECT_IDENTIFIER"

    Dengan keterangan:

    • JSON_FILE_NAME adalah nama file JSON yang Anda buat pada Langkah 2.
    • OAUTH2_TOKEN adalah token akses yang Anda buat pada Langkah 1.
    • PROJECT_IDENTIFIER adalah ID atau nomor project yang akan dikaitkan dengan bucket Anda. Misalnya, my-project.

XML API

  1. Dapatkan token akses otorisasi dari OAuth 2.0 Playground. Konfigurasikan Playground agar menggunakan kredensial OAuth Anda sendiri. Untuk mendapatkan petunjuk, lihat Autentikasi API.
  2. Buat file XML yang berisi informasi berikut:
  3. <CreateBucketConfiguration>
       <LocationConstraint>BUCKET_LOCATION</LocationConstraint>
       <StorageClass>STORAGE_CLASS</StorageClass>
    </CreateBucketConfiguration>

    Dengan keterangan:

    • BUCKET_LOCATION adalah lokasi tempat Anda ingin menyimpan data objek bucket. Misalnya, US-EAST1.
    • STORAGE_CLASS adalah kelas penyimpanan default untuk bucket Anda. Misalnya, NEARLINE.
  4. Gunakan cURL untuk memanggil XML API:
    curl -X PUT --data-binary @XML_FILE_NAME \
         -H "Authorization: Bearer OAUTH2_TOKEN" \
         -H "x-goog-project-id: PROJECT_ID" \
         "https://storage.googleapis.com/BUCKET_NAME"

    Dengan keterangan:

    • XML_FILE_NAME adalah nama file XML yang Anda buat pada Langkah 2.
    • OAUTH2_TOKEN adalah token akses yang Anda buat pada Langkah 1.
    • PROJECT_ID adalah ID project yang akan dikaitkan dengan bucket Anda. Misalnya, my-project.
    • BUCKET_NAME adalah nama yang ingin Anda berikan pada bucket, sesuai dengan persyaratan penamaan. Misalnya, my-bucket.

Langkah berikutnya

Coba sendiri

Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa Cloud Storage dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.

Coba Cloud Storage gratis