【问题标题】:How to get type of the file from the Google Cloud Storage based on its blobkey?如何根据 blobkey 从 Google Cloud Storage 获取文件类型?
【发布时间】:2015-09-27 14:56:48
【问题描述】:

我将文件的 blobkey 存储在 Google Cloud Storage 中。这是我掌握的唯一信息。有了这些信息,我可以读取文件(但我不知道也无法获取它的文件名)。有没有办法从文件内容或谷歌云存储中获取文件类型或读取其元数据(Content type,例如image/jpeg)?它将允许我分配正确的文件扩展名(文件名不是那么重要,所以像noname.jpgnoname.pngnoname.pdf 这样的标准名称就可以了)。

【问题讨论】:

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


    【解决方案1】:

    您无法从 blob_key 获取文件名或其他属性。您需要一个 BlobInfo 对象。 GCS 文件没有 BlobInfo 对象。您必须创建自己的。

    示例:https://github.com/voscausa/appengine-gcs-blobstore-python

    【讨论】:

    【解决方案2】:

    但是 GCS 文件有一个 stat 对象,它至少存储 size、md5、content_type 和元数据(包含来自 x-goog-meta-header 的任何用户指定元数据的字典)。虽然您无法单独使用 BlobKey在真实服务器上访问它(它适用于 SDK,因为存储桶是由那里的 blobstore 模拟的!)。

    https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/gcsfilestat_class

    【讨论】:

    • 同样,您应该知道文件名才能获取此类数据 - cloud.google.com/appengine/docs/python/googlecloudstorageclient/…
    • 没错。我想指出,在 SDK 上获得 BlobInfo 工作,但在真正的服务器上它失败了(惊喜!)。 IMO 在 BlobKeys 中存储 GCS blob 是 Google 的 Hack-Fix,而不是精心设计的系统。
    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 2015-03-29
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多