Python谷歌云存储图像存储
好的……我一直在努力弄明白怎么做这个,但一直没什么进展。
我在Google App Engine Launcher上有一个本地的Python脚本,它通过POST请求接收一个图片文件。我还没有发布这个应用,但我能访问Google Cloud SQL,所以我想我也能访问Google Cloud Storage。
import MySQLdb
import logging
import webapp2
import json
class PostTest(webapp2.RequestHandler):
def post(self):
image = self.request.POST.get('file'))
logging.info("Pic: %s" % self.request.POST.get('file'))
#################################
#Main Portion
#################################
application = webapp2.WSGIApplication([
('/', PostTest)
], debug=True)
日志输出显示它正在接收图片,所以我知道这一点是没问题的:
INFO 2014-08-04 23:20:43,299 posttest.py:21] Pic Bytes: FieldStorage(u'file', u'tmp.jpg')
- 我该如何连接到Google Cloud Storage?
- 我该如何把这个图片上传到我叫做'app'的Google Cloud Storage桶里?
- 一旦上传了,我该如何取回这个图片?
这应该是件简单的事情,但我一直找不到好的、清晰的文档来指导我怎么做。有一个REST API,但已经不再使用了,而GoogleAppEngineCloudStorageClient让我感到困惑。
有人能帮我提供一个代码示例吗?我会非常感激的!
1 个回答
0
我创建了一个代码库,里面有一个简单的脚本可以做到这一点:https://github.com/itsdeka/python-google-cloud-storage
这是和DJango集成的一个例子:
picture = request.FILES.get('picture', None)
file_name = 'test'
directory = 'myfolder'
format = '.jpg'
GoogleCloudStorageUtil.uploadMediaObject(file=picture,file_name=file_name,directory=directory,format=format)
小提示:如果你的存储桶里没有叫'myfolder'的文件夹,它会自动创建一个。
你在存储桶里上传的所有图片链接都是一样的,只有文件名不同,所以找你想要的图片非常简单。