Google Storage Python API

到 Google Storage 申請帳號,過兩天收到認證信,開通以後填入信用卡帳號,就可以開始使用了,

先到 key management 申請一個 key ,然後抓 http://code.google.com/p/gsutil/ API 的函式庫,

然後用 Python 2.5 ~2.7 執行 gsutil ls 他就會幫你產生 .boto 設定檔 填入 剛申請的 key 跟 secret,就可以按照範例執行程式了。

#!/usr/bin/python

import StringIO
import os
import shutil
import tempfile
import time

import boto

# Read developer keys from the ~/.boto config file.
config = boto.config

# URI scheme for Google Storage.
GOOGLE_STORAGE = 'gs'
# URI scheme for accessing local files.
LOCAL_FILE = 'file'
now = time.time()
CATS_BUCKET = 'cats-%d' % now
DOGS_BUCKET = 'dogs-%d' % now

for name in (CATS_BUCKET, DOGS_BUCKET):
# Instantiate a BucketStorageUri object.
uri = boto.storage_uri(name, GOOGLE_STORAGE)
# Try to create the bucket.
try:
uri.create_bucket()
print 'Successfully created bucket "%s"' % name
except boto.exception.StorageCreateError, e:
print 'Failed to create bucket:', e

python cgi 入門…

由於 PHP 在 Thrift 連接 hdfs 的時候上傳檔案一直怪怪的,不曉得是哪裡的問題,

又鑑於 Python 的熱門(GAE,框架..)等等原因,還是得學一下

裝了 mod_python 以後就能開始寫了,好像 mod_wsgi  也可以,只是不太懂幹麼用的…再亂設一堆 http.conf 設到能跑為止…

//httpd.conf
LoadModule python_module modules/mod_python.so
PythonDebug On
AddHandler cgi-script .py

Python 不像 PHP 一樣專門用來寫 Web 所以基礎環境沒辦法很輕鬆的開發 Web,連錯誤訊息也看不太到

所幸好像 cgitb.enable() 以後就有錯誤訊息debug了?!

import cgi,cgitb,os
cgitb.enable()

要寫一個可以顯示在瀏覽器的網頁要自己輸出 http header 與宣告自己的直譯器位置,

跟以往用 c 寫 cgi 應該視差不多的方式,範例:

#!/usr/bin/python
print 'Content-type: text/html\n'
print 'Hello World!'

好險資源不少,官方網站就有不錯的教學[2],又有網站[1] 將基礎動態網頁長寫的範例都寫出來…馬上能夠對應至原先 PHP 的經驗,

不熟悉的函式如同php去查 reference[3] ,又有較完整的物件與 package 結構,唯一的缺點就是有點稍嫌古怪的語法,

比較不相容以往一系列學過基礎語法同種的語言…C , Java , PHP , JavaScript。

等基礎 cgi 寫法 熟悉後再來學 django 吧!

參考資源