gsutilをInstallしてGoogle Cloud Storageに接続
Google Cloud Storageにバックアップするスクリプトを書くためにgsutilをインストールしたときの覚書。
環境: CentOS 6.6, Python 2.6.6
公式ページを参考に。
目次
- PyPI経由でgsutilをインストール
- gsutilの設定
- バケットを作成してみる
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 >