AppEngine:从Blobstore转到S3?

1 投票
1 回答
650 浏览
提问于 2025-04-16 12:47

我正在把数据上传到一个叫做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 个回答

2

你可以使用一个叫做BlobReader的工具来访问这个Blob,然后把它发送到S3上。

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

撰写回答