gsutilをInstallしてGoogle Cloud Storageに接続

google-cloud-storage_gsutilGoogle Cloud Storageにバックアップするスクリプトを書くためにgsutilをインストールしたときの覚書。

環境: CentOS 6.6, Python 2.6.6

公式ページを参考に。

 

目次

  1. PyPI経由でgsutilをインストール
  2. gsutilの設定
  3. バケットを作成してみる

 


1.PyPI経由でgsutilをインストール

Python向けパッケージ管理システムPyPI(Python Package Index)を使う

gsutilのインストールに必要なパッケージをインストール
# yum install gcc openssl-devel python-devel python-setuptools libffi-devel

PyPIのインストール
# yum install python-pip

gsutilのインストール
# pip install gsutil

アップデートするとき
# pip install -U gsutil

 


2.gsutilの設定

公式ドキュメントに従う
# gsutil config

エラー

Traceback (most recent call last):
  File "/usr/bin/gsutil", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

下記サイトにsetuptoolsの問題らしい。

yum経由でインストールされたpython-setuptoolsは0.6.10だったので最新版をインストールする。
# wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python

確認
# pip show setuptools
# gsutil version -l

gsutil設定
# gsutil config

表示されるURLをブラウザに貼り付けると認証コードが表示される。それをコンソールの方にコピペ。

プロジェクトIDはデベロッパーコンソール「概要」の画面上に表示される。

設定は.botoに保存される。

開発用サーバーで作成した.botoを他のサーバーにコピーすればgsutil configせずに動く。

 


3.バケットを作成してみる

コマンドは公式サイトか「gsutil help」で確認

バケットの一覧
# gsutil ls

バケットの作成
# gsutil mb gs://cats

バケットの名前はGoogle Cloud Storage全体で一意でなくてはならない。存在している場合はエラーになる。

Creating gs://cats/...
ServiceException: 409 Bucket cats already exists.

バケットの命名規約は公式サイトで確認

ドメイン名のようなDNSのCNAME形式(hoge.example.com)が推奨らしい。

ただしドメイン名の場合、所有者か確認する処理が走る。所有者でないとエラーになる。

Creating gs://backup.hoge.com/...
AccessDeniedException: 403 The bucket you tried to create is a domain name owned by another user.

所有者として登録する方法はSearch Console(旧Webmaster tools)から。

ただGoogle Analyticsで認証した場合はダメだった。DNSかその他の方法で確認する必要がある。

「backup.hoge.com」のバケットを作りたい場合は「hoge.com」で所有者確認出来れいればいい。

ファイルを作る
# echo "new data" | gsutil cp - gs://backup.hoge.com/test/data.txt

フォルダだけ作ることは出来ない

バケット削除
# gsutil rm -r gs://hoge.com

 

Python2.6のWarningがうざい

/usr/lib64/python2.6/site-packages/cryptography/__init__.py:25: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python.
  DeprecationWarning

今は後回し。

 

< Related Posts >