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
のページを参考にしました。
作る際に画像を保存したくて、このアップロード機能を実装しました。