如何根据文件的 blobkey 从 Google 云存储中获取文件类型?
How to get type of the file from the Google Cloud Storage based on its blobkey?
我将文件的 blobkey 存储在 Google 云存储中。这是我唯一的信息。有了这些信息,我就可以读取该文件(但我不知道也无法获取其文件名)。有什么方法可以从文件内容或 Google 云存储中获取文件类型或读取其元数据(Content type
,例如 image/jpeg
)?它将允许我分配正确的文件扩展名(文件名不是那么重要,所以像 noname.jpg
、noname.png
、noname.pdf
这样的标准名称就可以了)。
您无法从 blob_key 中获取文件名或其他属性。您需要一个 BlobInfo 对象。 GCS 文件没有 BlobInfo 对象。您必须创建自己的。
示例:https://github.com/voscausa/appengine-gcs-blobstore-python
但是 GCS 文件有一个 stat 对象,它至少存储大小、md5、content_type 和元数据(包含来自 x-goog-meta-header 的任何用户指定元数据的字典)。尽管您无法单独使用 BlobKey 在真实服务器 上访问它(它在 SDK 上工作,因为存储桶由那里的 blobstore 模拟!)。
https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/gcsfilestat_class
我将文件的 blobkey 存储在 Google 云存储中。这是我唯一的信息。有了这些信息,我就可以读取该文件(但我不知道也无法获取其文件名)。有什么方法可以从文件内容或 Google 云存储中获取文件类型或读取其元数据(Content type
,例如 image/jpeg
)?它将允许我分配正确的文件扩展名(文件名不是那么重要,所以像 noname.jpg
、noname.png
、noname.pdf
这样的标准名称就可以了)。
您无法从 blob_key 中获取文件名或其他属性。您需要一个 BlobInfo 对象。 GCS 文件没有 BlobInfo 对象。您必须创建自己的。
示例:https://github.com/voscausa/appengine-gcs-blobstore-python
但是 GCS 文件有一个 stat 对象,它至少存储大小、md5、content_type 和元数据(包含来自 x-goog-meta-header 的任何用户指定元数据的字典)。尽管您无法单独使用 BlobKey 在真实服务器 上访问它(它在 SDK 上工作,因为存储桶由那里的 blobstore 模拟!)。
https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/gcsfilestat_class