Python谷歌云存储图像存储

0 投票
1 回答
1000 浏览
提问于 2025-04-18 16:36

好的……我一直在努力弄明白怎么做这个,但一直没什么进展。
我在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')
  1. 我该如何连接到Google Cloud Storage?
  2. 我该如何把这个图片上传到我叫做'app'的Google Cloud Storage桶里?
  3. 一旦上传了,我该如何取回这个图片?

这应该是件简单的事情,但我一直找不到好的、清晰的文档来指导我怎么做。有一个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'的文件夹,它会自动创建一个。

你在存储桶里上传的所有图片链接都是一样的,只有文件名不同,所以找你想要的图片非常简单。

撰写回答