【问题标题】:Upload images/video to google cloud storage using Google App Engine使用 Google App Engine 将图像/视频上传到 Google 云存储
【发布时间】:2012-07-06 15:09:29
【问题描述】:

我已阅读来自Sending images to google cloud storage using google app engine 的问题。

但是,答案中的代码是文件会先上传到 Blobstore,所以文件不能超过 32MB。

如何将大文件直接上传到谷歌云存储?

查了官方文档Upload Objects,但是还是不知道怎么写表单来发大文件。

【问题讨论】:

  • blobstore 没有 32mb 的文件大小限制。这是一个 api 调用中可以读取多少 mb 的限制。 the maximum size of Blobstore data that can be READ by the application with one API call is 32 megabytes.
  • @aschmid00:感谢您的评论。但是,我仍然不知道如何在不调用 API 的情况下将文件上传到 Blobstore...
  • 限制你的不是上传它的 api 调用,而是读取 blob 的 api 调用。您应该首先阅读文档developers.google.com/appengine/docs/python/blobstore/… 您需要在呈现表单时生成上传 url,或者稍后通过 ajax 调用获取它
  • @aschmid00:感谢您的快速回复。我确实阅读了您提到的文档,并在我的网站中使用过。但是我还是想知道怎么用表单直接把大文件上传到云存储,以后再看。

标签: python google-app-engine google-cloud-storage


【解决方案1】:

从 1.7.0 开始很容易

upload_url = blobstore.create_upload_url('/upload_handler', gs_bucket_name='my_bucket')

将直接上传到 Google Storage 并返回指向 Cloud Storage 中上传的 blob 密钥。

【讨论】:

  • 哇,它有效!谢谢!是否可以使用upload_filename来设置bucket中的文件名?
  • 目前没有 - 我们使用“随机”文件名,因此我们具有与上传到 blobstore 相同的语义,您可以在其中一次又一次上传相同的文件并生成新的 blob。
  • @StuartLangley 以及如何检索此文件名?在 BlobstoreUploadHandler 中使用 get_uploads() 只会返回一个奇怪的键。
  • 此问题似乎已于 2013 年 3 月 11 日修复 code.google.com/p/googleappengine/wiki/SdkForJavaReleaseNotes
【解决方案2】:

upload_url = blobstore.create_upload_url('/upload', gs_bucket_name='mybucketname')

使用 blob 密钥获取上传到云存储,但它仍将上传的文件也放入 blobstore。

【讨论】:

  • 我使用的是 GAE1.7.3,它仍在将其上传到 GCS 上的 blobstore。
  • 我确认它仍在上传到 blobstore 和 GCS。
猜你喜欢
  • 1970-01-01
  • 2017-05-04
  • 2011-03-25
  • 1970-01-01
  • 2010-11-09
  • 2016-11-09
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
相关资源
最近更新 更多