【问题标题】:Google App Engine - uploading files, best practicesGoogle App Engine - 上传文件,最佳做法
【发布时间】:2011-07-22 08:20:04
【问题描述】:

我想将文件上传到我的Google App Engine 项目中。

我在这个问题上已经阅读了一段时间,并且有很多答案认为 Blobstore 是最佳选择。

但如果我确实理解这一点,这些都是数据库对象。我想将它们作为系统文件上传到缓存主题,或者方便将来可能迁移到另一个 CDN

假设我想为每个用户保存几个文件,几个图像,文本文件,也许是一些视频等等...... 如果哪天我想把这些静态文件移到另一个CDN,不应该出数据库吗?

这是个好主意吗?有解决办法吗?

【问题讨论】:

  • 您是在谈论与您的项目一起的一些静态文件,还是您在谈论您的应用程序中需要用户上传自己的文件的部分?它们是图像还是其他文件类型?您是否需要通过应用程序代码以编程方式访问这些文件?
  • 我在上面提供了更多信息,谢谢

标签: google-app-engine file-upload


【解决方案1】:

我建议您使用 GAE 数据存储来存储文件引用(例如,视频、图像等)并将内容上传到 Amazon S3。您甚至可以允许客户端直接将内容上传到 Amazon S3,而无需使用 Amazon HTML POST 表单 (Browser Uploads to S3 using HTML POST Forms) 通过 GAE 处理内容。 Amazon AWS 还提供与 S3 服务紧密集成的 CDN (CloudFront)。

如果您只需要存储小图片,您还可以考虑使用 Google 图片服务,因为它提供“免费”CDN 和一些很酷的开箱即用转换。

【讨论】:

  • 这是我的一个想法,但我想要一个免费的选项,开始:)
  • 是的,我现在将使用 GAE 数据库 (BLOBStore) :)
  • 虽然在上传之前有文件的大小会很棒......
【解决方案2】:

您无法写入 App Engine 上的文件系统,因此您可以选择将数据存储到数据存储区或 Blob 存储区。在这两者中,blobstore 通常是存储文件上传的更好选择。

关于移植到 CDN,无论您如何执行此操作,都需要进行更改。 App Engine 不是 CDN,没有两个 CDN 完全相同,而且 CDN 不太可能公开一个您可以使用标准文件系统操作与之交互的接口。

【讨论】:

    猜你喜欢
    • 2010-10-24
    • 2014-12-10
    • 1970-01-01
    • 2010-09-10
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多