diff --git a/google-cloud-storage/samples/acceptance/buckets_test.rb b/google-cloud-storage/samples/acceptance/buckets_test.rb index 23513062d946..f3d0e42f8ba1 100644 --- a/google-cloud-storage/samples/acceptance/buckets_test.rb +++ b/google-cloud-storage/samples/acceptance/buckets_test.rb @@ -34,6 +34,7 @@ require_relative "../storage_enable_requester_pays" require_relative "../storage_enable_uniform_bucket_level_access" require_relative "../storage_enable_versioning" +require_relative "../storage_get_bucket_class_and_location" require_relative "../storage_get_bucket_metadata" require_relative "../storage_get_default_event_based_hold" require_relative "../storage_get_public_access_prevention" @@ -349,6 +350,23 @@ end end + describe "get bucket class and location data" do + bucket_name = random_bucket_name + location = "US" + storage_class = "COLDLINE" + + it "get_bucket_class_and_location" do + storage_client.create_bucket bucket_name, + location: location, + storage_class: storage_class + expected_output = "Bucket #{bucket_name} storage class is " \ + "#{storage_class}, and the location is #{location}\n" + assert_output expected_output do + get_bucket_class_and_location bucket_name: bucket_name + end + end + end + describe "labels" do it "add_bucket_label, remove_bucket_label" do # add_bucket_label diff --git a/google-cloud-storage/samples/storage_get_bucket_class_and_location.rb b/google-cloud-storage/samples/storage_get_bucket_class_and_location.rb new file mode 100644 index 000000000000..9eb27c084096 --- /dev/null +++ b/google-cloud-storage/samples/storage_get_bucket_class_and_location.rb @@ -0,0 +1,36 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# [START storage_get_bucket_class_and_location] + +def get_bucket_class_and_location bucket_name: + # The ID of your GCS bucket + # bucket_name = "your-unique-bucket-name" + require "google/cloud/storage" + + # Initialize Google Cloud Storage client + storage = Google::Cloud::Storage.new + + # Fetch bucket metadata + bucket = storage.bucket bucket_name + + # Handle the case where the bucket is not found + raise "Bucket not found: #{bucket_name}" if bucket.nil? + + # Output the bucket's storage class and location + puts "Bucket #{bucket.name} storage class is #{bucket.storage_class}, and the location is #{bucket.location}" +end +# [END storage_get_bucket_class_and_location] + +get_bucket_class_and_location bucket_name: ARGV.shift if $PROGRAM_NAME == __FILE__