【问题标题】:Persisting File to App Engine Blobstore将文件持久保存到 App Engine Blobstore
【发布时间】:2015-12-30 02:38:40
【问题描述】:

Blobstore 的 App Engine documentation 对如何使用 webapp 框架提供的 BlobstoreUploadHandler 上传文件进行了非常详尽的说明。

但是,我有一个 cgi.FieldStorage 实例,我想将它直接存储到 Blobstore 中。换句话说,我不需要上传文件,因为这是通过其他方式处理的;我只需要存储它。

我一直在查看 blobstore 模块 source 以尝试了解上传处理程序如何创建/生成 blobstore 密钥并最终将文件写入 blobstore 本身,但我迷路了。 blobstore_service_pb 中的 CreateUploadURLResponse 似乎是实际写入发生的位置,但我没有看到实际实现该功能的组件。

更新

还有一个将文件直接存储到文件系统中的实现,我认为这是上传处理程序最终所做的。我对此并不完全确定,因此请解释一下使用FileBlobStorage 是否是正确的方法。

【问题讨论】:

    标签: python google-app-engine blobstore


    【解决方案1】:

    在文件 API 的 deprecation 之后,您不能再直接写入 blobstore。 您应该改为写入 Google Cloud Storage。为此,您可以使用AE GCS client creating a blob key 可以通过 Blobstore API 提供写入 Google Cloud Storage 的文件。

    【讨论】:

    • 当我们使用 BlobstoreUploadHandler 时,有些东西正在写入 blobstore,对吧?如果是这样,我们不能使用相同的过程来自己存储 blob 吗?我并不是说我不会切换到 GCS,但我对如果我不得不坚持使用 blobstore 可以做什么很感兴趣
    • 我建议你忘记 blobstore 并只使用 GCS,除非你有很多在 blobstore 上使用的代码。
    • @DmitrySadovnychyi 没有太多代码依赖于 blobstore。 GCS 是
    • 是的,使用 GCS 是首选方式,但只是为了回答您关于 BlobstoreUploadHandler 如何做到这一点的问题。当您提供上传的 url 时,上传是直接到 blobstore 的,处理程序只获取对已上传文件的引用。
    猜你喜欢
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 2011-03-25
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多