Buy Me a Coffee? Your support is much appreciated!
PayPal Me: https://www.paypal.me/jiejenn/5
Venmo: @Jie-Jenn
Source Code:
import os
from pprint import pprint
from google.cloud import storage
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = r'ServiceKey_GoogleCloud.json'
storage_client = storage.Client()
bucket_name = '<bucket name>'
# create a new bucket
bucket = storage_client.bucket(bucket_name)
bucket.storage_class = 'COLDLINE' # Archive | Nearline | Standard
bucket.location = 'US' # Taiwan
bucket = storage_client.create_bucket(bucket) # returns Bucket object
pprint(vars(bucket))
bucket.name
bucket._properties['selfLink']
bucket._properties['id']
bucket._properties['location']
bucket._properties['timeCreated']
bucket._properties['storageClass']
bucket._properties['timeCreated']
bucket._properties['updated']
"""
Get Bucket
"""
my_bucket = storage_client.get_bucket(bucket_name)
pprint(vars(my_bucket))
"""
Upload File
"""
def upload_to_bucket(blob_name, file_path, bucket_name):
'''
Upload file to a bucket
: blob_name (str) - object name
: file_path (str)
: bucket_name (str)
'''
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(blob_name)
blob.upload_from_filename(file_path)
return blob
# response = upload_to_bucket('Voice List', 'Voice List.csv', bucket_name)
# response = upload_to_bucket('/docs/requirementABC', 'requirements.txt', bucket_name)
"""
Download File By Blob Name
"""
def download_file_from_bucket(blog_name, file_path, bucket_name):
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(blog_name)
with open(file_path, 'wb') as f:
storage_client.download_blob_to_file(blob, f)
print('Saved')
# download_file_from_bucket('Voice List', r'H:\PythonVenv\GoogleAI\Cloud Storage\Voice List.csv', bucket_name)
"""
Download File By Passing URI Path
"""
def download_file_uri(uri, file_path):
with open(file_path, 'wb') as f:
storage_client.download_blob_to_file(uri, f)
print('Saved')
uri = 'gs://<uri>'
# download_file_uri(uri, r'H:\PythonVenv\GoogleAI\Cloud Storage\Voice List2.csv')
"""
List Buckets
list_buckets(max_results=None, page_token=None, prefix=None, projection='noAcl', fields=None, project=None, timeout=60, retry=<google.api_core.retry.Retry object>)
"""
for bucket in storage_client.list_buckets(max_results=100):
print(bucket)

Hello Jie,
Thanks for your video,
However, when I was trying to run the below code, I was getting an error “‘str’ object has no attribute ‘tell’”
def upload_to_bucket(blob_name,file_path,bucket_name):
try:
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(blob_name)
blob.upload_from_file(file_path)
return True
except Exception as e:
print(e)
return False
file_path = ‘/Users/mitku/Desktop/GoToDocs/Kisanu/Work/Analytics Project/Sample Data’
upload_to_bucket(‘Voice List’,os.path.join(file_path,’USState_Codes.csv’),’playground-s-11-c6fa85d5-multi-region-bucket’)
Does this have something to do with the file_path, as I am using this code in Mac
Can you explain how to get the gcs_uri using python? I have tried but failed to do it