【问题标题】:I uploaded a video to Google Cloud Storage via AppEngine. What's the most efficient way to serve it?我通过 AppEngine 将视频上传到 Google Cloud Storage。最有效的服务方式是什么?
【发布时间】:2013-03-29 00:57:23
【问题描述】:

与图像不同,没有像 images.get_serving_url() 这样的 API 来提供图像 blob。对于图像以外的东西,我们是否应该像处理 BlobStorage 中的对象一样设置下载处理程序并使用 send_blob()?

【问题讨论】:

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


    【解决方案1】:

    您可以将ACL 您的对象公开阅读,然后直接从GCS 提供。

    作为示例,您可以查看我编写的一个快速应用程序,用于测试从 GCS 和 blobstore 提供音频和视频 -> audio-test.appspot.comThis 链接使用 BlobstoreDownloadHandler 提供文件,而 this 链接直接从 Google Cloud Storage 提供相同的文件。

    【讨论】:

    • 谢谢,斯图尔特!你是如何提取 GCS url(即commondatastorage.googleapis.com/sjl-test/song.ogg)的?我可以从 BlobstoreUploadHandler 获取 file_info.gs_object_name(即 /gs/some_bucket/fake-ODFhNjhmYjk5MDc2YTRkYzM1ZmVmYjJlZTBmYzRiNzQ= )。
    • gs_object_name 应该是上传文件的正确名称,IIRC。
    • 要直接从 GCS 提供服务,该文件必须是公开的。但是,使用 blobstore.create_upload_url() 上传的文件似乎忽略了我在存储桶上设置的默认 acl.txt(带公共读取),并且文件被保密。是预期的吗?
    • 另外,从性能和成本的角度来看,直接从 GCS 提供服务更好吗?
    • - 默认情况下,通过 GAE 上传的 AFAIK blob 是私有的,您需要在上传后手动将它们公开。
    【解决方案2】:

    AFAIR,您无法在BlobStore 中为通常的 blob 创建服务 URL,因此在您的情况下,BlobstoreDownloadHandler 将是合适的解决方案。可能是唯一可行的解​​决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 2014-01-05
      • 2015-08-28
      • 2021-05-07
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多