AppEngine:从Blobstore进入S3?

时间:2011-03-02 02:05:08

标签: python google-app-engine amazon-s3 blobstore

我正在将数据上传到blobstore。它应该只是暂时保留,并从我的AppEngine应用程序上传到Amazon S3。

看起来我只能通过Blobstore API中描述的BlobDonwloadHandler获取数据:http://code.google.com/intl/de-DE/appengine/docs/python/blobstore/overview.html#Serving_a_Blob

所以我尝试从我的应用程序中获取该特定于blob的下载URL(请记住我昨天的问题)。从AppEngine(而不是开发服务器)中获取内部URL是有效的,即使是糟糕的风格 - 我知道。

但是获得blob是行不通的。我的代码如下:

result = urllib2.urlopen('http://my-app-url.appspot.com/get_blob/'+str(qr.blob_key))

我正在接受

  

DownloadError:ApplicationError:2

     

提出:

     

文件   “/base/python_runtime/python_lib/versions/1/google/appengine/api/urlfetch.py​​”   第327行,在_get_fetch_result中       提出DownloadError(str(err))

即使在搜索之后我真的不知道该怎么做。

我见过的所有教程都只关注通过URL提供给用户。但我想从Blobstore中检索blob并将其发送到S3存储桶。任何人都知道我怎么能意识到这一点,或者甚至不可能?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用BlobReader访问该Blob并将其发送给S3。

http://code.google.com/intl/de-DE/appengine/docs/python/blobstore/blobreaderclass.html