This page shows you how to create Cloud Storage buckets. If not otherwise specified in your request, buckets are created in the Creating gs://BUCKET_NAME/...9 multi-region and have a default storage class of .
Note: A bucket's name and geographic location are . If you need to designate a specific name or geographic location, they must be specified at bucket creation.Required permissions
In order to complete this guide using the Google Cloud console, you must have the proper IAM permissions. If you did not create the project you want to access, you might need the project owner to give you a role that contains the necessary permissions. For a list of permissions required for specific actions, see IAM permissions for the Google Cloud console. For a list of relevant roles, see Cloud Storage roles. Alternatively, you can create a custom role that has specific, limited permissions. In order to complete this guide using a command-line utility, you must have the proper IAM permissions. If you did not create the project you want to access, you might need the project owner to give you a role that contains the necessary permissions. For a list of permissions required for specific actions, see IAM permissions for gsutil commands. For a list of relevant roles, see Cloud Storage roles. Alternatively, you can create a custom role that has specific, limited permissions. In order to complete this guide using the Cloud Storage client libraries, you must have the proper IAM permissions. If you did not create the project you want to access, you might need the project owner to give you a role that contains the necessary permissions. Unless otherwise noted, client library requests are made through the JSON API. For a list of permissions required for specific actions, see IAM permissions for JSON methods. For a list of relevant roles, see Cloud Storage roles. Alternatively, you can create a custom role that has specific, limited permissions. In order to complete this guide using the JSON API, you must have the proper IAM permissions. If you did not create the project you want to access, you might need the project owner to give you a role that contains the necessary permissions. For a list of permissions required for specific actions, see IAM permissions for JSON methods. For a list of relevant roles, see Cloud Storage roles. Alternatively, you can create a custom role that has specific, limited permissions.Console
Command line
Client libraries
REST APIs
JSON API
Create a new bucket
Go to Buckets Note: The Monthly cost estimate panel in the right pane estimates the bucket's monthly costs based on your selected storage class and location, as well as your expected data size and operations. Note: If public access prevention is already enforced by your project's , the Prevent public access toggle is locked. To learn how to get detailed error information about failed Cloud Storage operations in the Google Cloud console, see .Console
Command line
Use the gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access0 command: Where: If the request is successful, the command returns the following message: Set the following optional flags to have greater control over the creation of your bucket: For a complete list of options for gcloud bucket creation, see . For example:gcloud
gsutil
Use the gsutil mb gs://BUCKET_NAME1 command:
gsutil mb gs://BUCKET_NAMEWhere:
- gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access1 is the name you want to give your bucket, subject to . For example, gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access2.
If the request is successful, the command returns the following message:
Creating gs://BUCKET_NAME/...Set the following optional flags to have greater control over the creation of your bucket:
- gsutil mb gs://BUCKET_NAME4: Specify the project ID or project number with which your bucket will be associated. For example, gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access4.
- gsutil mb gs://BUCKET_NAME6: Specify the default storage class of your bucket. For example, gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access6.
- gsutil mb gs://BUCKET_NAME8: Specify the location of your bucket. For example, gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access8.
- Creating gs://BUCKET_NAME/...0: Specify the uniform bucket-level access setting for your bucket. For example, Creating gs://BUCKET_NAME/...1.
For a complete list of options for gsutil bucket creation, see .
For example:
gsutil mb -p PROJECT_ID -c STORAGE_CLASS -l BUCKET_LOCATION -b on gs://BUCKET_NAMEClient Libraries
Note: Other options for creating a new bucket can be found in the JSON API reference forFor more information, see the Cloud Storage C++ API reference documentation. View on GitHub 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";
} For more information, see the Cloud Storage C# API reference documentation.C++
C#
View on GitHub
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
For more information, see the Cloud Storage Go API reference documentation.
View on GitHub
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: %v", 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: %v", bucketName, err) } fmt.Fprintf(w, "Created bucket %v in %v with storage class %v\n", bucketName, storageClassAndLocation.Location, storageClassAndLocation.StorageClass) return nil }
Java
For more information, see the Cloud Storage Java API reference documentation.
View on GitHub
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: // //googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/StorageClass.html StorageClass storageClass = StorageClass.COLDLINE; // See this documentation for other valid locations: // //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
For more information, see the Cloud Storage Node.js API reference documentation.
View on GitHub
Creating gs://BUCKET_NAME/...0
PHP
For more information, see the .
View on GitHub
Creating gs://BUCKET_NAME/...1
Python
For more information, see the Cloud Storage Python API reference documentation.
View on GitHub
Creating gs://BUCKET_NAME/...2
Ruby
For more information, see the Cloud Storage Ruby API reference documentation.
View on GitHub
Creating gs://BUCKET_NAME/...3
Terraform
You can use a Terraform resource to create a storage bucket.
View on GitHub
Creating gs://BUCKET_NAME/...4
REST APIS
Where: Where:JSON API
XML API
- Get an authorization access token from the OAuth 2.0 Playground. Configure the playground to use your own OAuth credentials. For instructions, see .
- Create a .xml file that contains the following information: Creating gs://BUCKET_NAME/...7
- Creating gs://BUCKET_NAME/...6 is the location where you want to store your bucket's object data. For example, gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access8.
- Creating gs://BUCKET_NAME/...8 is the default storage class of your bucket. For example, gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access6.
- Use gsutil mb -p PROJECT_ID -c STORAGE_CLASS -l BUCKET_LOCATION -b on gs://BUCKET_NAME0 to call the XML API:Creating gs://BUCKET_NAME/...8
Where:
- 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"; }0 is name of the XML file you created in Step 2.
- gsutil mb -p PROJECT_ID -c STORAGE_CLASS -l BUCKET_LOCATION -b on gs://BUCKET_NAME2 is the access token you generated in Step 1.
- 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"; }2 is the ID of the project with which your bucket will be associated. For example, gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access4.
- gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access1 is the name you want to give your bucket, subject to . For example, gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access2.
Where:
What's next
- List buckets in a project.
- Get information about a bucket's size and metadata.
- Move or rename a bucket.
- Delete a bucket.
- Upload an object to your bucket.
- Learn the basics of using Cloud Storage with the Google Cloud console.
Try it for yourself
If you're new to Google Cloud, create an account to evaluate how Cloud Storage performs in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.