google-cloud-storageのインストール
$ pip install --upgrade google-cloud-storage
ストレージクライアントの作成
from google.cloud import storage
client = storage.Client()
バケットに対する操作
バケットの作成
bucket = storage.Bucket(client)
bucket.name = "test-bucket"
bucket.location = "asia-northeast1"
client.create_bucket(bucket)
バケットの取得
bucket_name = "test-bucket"
bucket = client.get_bucket(bucket_name)
バケットの一覧表示
for bucket in client.list_buckets():
print(bucket.name)
# test-bucket1
# test-bucket2
# test-bucket3
バケットの存在チェック
print(bucket.exists())
# True
バケットの削除
bucket.delete(force=True)
バケットに対して削除リクエストを送信する場合、バケットは空である必要があります。
パラメータ「force」をTrueにすることで、バケットのオブジェクトを全て削除した上でバケットを削除できます。(Trueで空にする、デフォルトはFalse)
ただし、バケット内のオブジェクトが256個を超える場合、ValueErrorが発生するため、注意が必要です。
バケット内のオブジェクトに対する操作
オブジェクトを一覧表示
for blob in client.list_blobs(bucket_name):
print(blob.name)
# test_dir/
# test_dir/hoge.txt
# test_dir/test_file_1.txt
# test_dir/test_file_2.txt
# test_file_1.txt
# test_file_2.txt
オブジェクトを一覧表示(Prefix指定)
for blob in client.list_blobs(bucket_name, prefix="test_dir/test"):
print(blob.name)
# test_dir/test_file_1.txt
# test_dir/test_file_2.txt
オブジェクトのインスタンスを作成
blob = bucket.blob("test_dir/test_file_1.txt") # ストレージのパスを指定
オブジェクトの存在チェック
print(blob.exists())
# True
オブジェクトのダウンロード
blob.download_to_filename("test_file_1.txt") # ダウンロード先のパスを指定
オブジェクトのアップロード
blob.upload_from_filename("test_file_1.txt") # アップロード元のパスを指定
オブジェクトの削除
blob.delete()
参考
google-cloud-storage Library Reference
https://googleapis.dev/python/storage/latest/client.html