見出し画像

GCP 入門 (15) - Cloud Storage

「GCP」(Google Cloud Platform)の「Cloud Storage」の使い方をまとめました。

前回

1. Cloud Storage

Cloud Storage」は、高耐久性、高可用性なファイルストレージです。

料金は、次のとおりです。

2. ストレージの種類

ストレージの種類は、次のとおりです。

◎ Standard Storage
・最小保存期間 : なし
・用途 : WEBサイト、ストリーミング動画など
◎ Nearline Storage
・最小保存期間 : 30日
・用途 : データのバックアップやロングテールのマルチメディア コンテンツなど
◎ Coldline Storage
・最小保存期間 : 90日
・用途 : 障害復旧など
◎ Archive Storage
・最小保存期間 : 365日 
・用途 : 規制に関するアーカイブなど

3. プロジェクトの作成

(1) GCPの「Cloud Console」を開く。
(2) 画面上端の「プロジェクト名」から新規プロジェクトを作成。

4. サービスアカウントキーの作成

(1) 「Cloud Console」のメニュー「APIとサービス」を開く。
(2) 「認証情報 → 認証情報を作成 → ウィザードで選択」を選択。
(3) 「1. 必要な認証情報の種類を調べる」で、以下を設定し、「必要な認証情報」ボタンを押す。

・使用するAPI : Cloud Storage API
・"App Engine または Compute Engine でこの API を使用する予定はありますか?" : いいえ

(4) 「2. 認証情報を取得する」で、以下を設定し、「次へ」ボタンを押す。

・サービスアカウント名 : test
・ロール : Project → オーナー ※ どのリソースにアクセスできるかに影響
・キーのタイプ : JSON

成功すると、 「サービスアカウントキー」(JSONファイル)がダウンロードされます。

5. Pythonの開発環境の準備

(1)「Python3.6」の仮想環境を作成。
(2) 「クライアントライブラリ」のインストール。

$ pip install --upgrade google-cloud-storage

6. バケットの作成

(1) 画面上端の「検索ボックス」で「Storage」を検索。
(2) 「バケットの作成」をクリック。

画像1

(3) 名前を指定し、「続行」ボタンを押す。
(4) リージョンに「Reasion」の「asia-northeast1(東京)」を指定し、「続行」ボタンを押す。
(5)  ストレージクラスに「Standard」を指定し、「続行」ボタンを押す。
(6) アクセス制御に「均一」を指定し、「続行」ボタンを押す。
(7) 「作成」ボタンを押す。

7. ファイルの追加と削除

(1) 「オブジェクト」タブでファイルの追加と削除を行う。

・ファイルをアップロード : ファイルの追加。
・フォルダを作成 : フォルダの追加。
・削除 : 選択しているファイルとフォルダの削除。

画像2

8. バケット内のファイル一覧の取得

バケット内のファイル一覧の取得のコードは、次のとおりです。サービスアカウントキー名とバケット名は環境にあわせて書き換えます。

from google.cloud import storage
from google.oauth2 import service_account

# ストレージクライアントの取得
credentials = service_account.Credentials.from_service_account_file(
    'test.json', # サービスアカウントキー名の指定
    scopes=['https://www.googleapis.com/auth/cloud-platform'],
)
storage_client = storage.Client(
    credentials = credentials,
    project = credentials.project_id,
)

# バケット内のファイル一覧の取得   
bucket = storage_client.get_bucket('npaka_bucket') # バケット名の指定
blobs = bucket.list_blobs()
for blob in blobs:
    print(blob.name)​

9. バケット内からのファイルのダウンロード

バケット内のファイルのダウンロードのコードは、次のとおりです。バケット名とファイル名は環境にあわせて書き換えます。

# バケット内のファイルのダウンロード
bucket = storage_client.get_bucket('npaka_bucket') # バケット名の指定
blob = storage.Blob('kitten.png', bucket) # バケット内のファイル名の指定
content = blob.download_as_string()
with open('kitten.png', mode='wb') as f: # ローカルファイル名の指定
    f.write(content)

10. バケット内へのファイルのアップロード

バケット内のファイルのアップロードのコードは、次のとおりです。バケット名とファイル名は環境にあわせて書き換えます。

# バケット内のファイルのアップロード
bucket = storage_client.get_bucket('npaka_bucket') # バケット名の指定
blob = bucket.blob('kitten.png') # バケット内のファイル名の指定
blob.upload_from_filename('kitten.png') # ローカルファイル名の指定
【注意】 課金防止のためプロジェクトを削除したい場合は、「Cloud Console」のメニュー「IAMと管理 → リソースの管理」で行います。

次回


この記事が気に入ったらサポートをしてみませんか?