AppEngine:从Blobstore转到S3?
我正在把数据上传到一个叫做blobstore的地方。这个数据应该只是暂时存放,然后从我的AppEngine应用程序上传到亚马逊的S3存储。
看起来我只能通过一个叫BlobDownloadHandler的东西来获取这些数据,具体可以参考Blobstore API的说明:http://code.google.com/intl/de-DE/appengine/docs/python/blobstore/overview.html#Serving_a_Blob
所以我试着在我的应用程序中获取这个特定的blob下载链接(记得我昨天问的问题吗)。从AppEngine内部获取链接(不是开发服务器)是可以的,虽然这样做不太好,我知道。
但是获取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", 第332行,在_get_fetch_result中 raise DownloadError(str(err))
即使我搜索了很多资料,我还是不知道该怎么办。
我看到的所有教程都只关注如何通过一个链接把数据返回给用户。但我想从Blobstore中获取这个blob,然后把它发送到S3存储桶。有没有人知道我该怎么做,或者这根本就不可能?
提前谢谢大家。
1 个回答
你可以使用一个叫做BlobReader的工具来访问这个Blob,然后把它发送到S3上。
http://code.google.com/intl/de-DE/appengine/docs/python/blobstore/blobreaderclass.html