Google Cloud Storageにappengine/pythonからアップしてみる

from __future__ import with_statement

from google.appengine.api import urlfetch

from google.appengine.ext import webapp

import logging

try:

files.gs

except AttributeError:

import gs

files.gs = gs

class WriteImageHandler(webapp.RequestHandler):

BUCKET = 'xxxxx'

def post(self):

try:

read_path = '/gs/%s/%s' % (self.BUCKET, 'test.jpg')//保存先のファイル名

write_path = files.gs.create(read_path, mime_type='image/jpeg' , acl='public-read')//ファイルによって、mime_typeを変える

result = urlfetch.fetch('http://')//取得先の画像のアドレス

if result.status_code == 200:

with files.open(write_path, 'a') as fp:

fp.write(result.content)

else:

logging.debug("uploadError:" + str(result.status_code))

return False

files.finalize(write_path)

logging.debug("upload correct!")

except:

logging.debug("uploadError")

return False

※↑すみません、<p>タグがどうやっても入ってしまうので、除いてご利用いただければと思いますm(_ _)m

アップすると、Google Cloud Storage Managerから見ることができ、

acl='public-read'で書き込んでいるので、

http://commondatastorage.googleapis.com/' + バケット名 + "/" + ファイル名

というアドレスをブラウザに打つと、ファイルにアクセスできます。

http://code.google.com/appengine/docs/python/googlestorage/overview.html

のページを参考にしました。

もしかしてジェネレーター

作る際に画像を保存したくて、このアップロード機能を実装しました。