【问题标题】:How can I set the MIME type upon writing a file to google cloud storage如何在将文件写入谷歌云存储时设置 MIME 类型
【发布时间】:2014-06-21 08:14:38
【问题描述】:
我正在按照instructions 将 wav 和 mp3 文件保存到谷歌云存储(而不是 blobstore)。但是,这样做会丢失文件的 MIME 类型,而是将其转换为 binary/octet-stream,不幸的是,这会破坏我正在使用的应用程序。
如何在写入文件时设置 MIME 类型?
有没有办法根据文件自动设置 MIME 类型,即如果它是 mp3 文件,则保存为音频/mpeg,如果是 wav,则保存为音频/wav?
【问题讨论】:
标签:
python
google-app-engine
google-cloud-storage
blobstore
【解决方案1】:
这是一个例子:
def gcs_write_blob(dyn, blob):
""" update google cloud storage dyn entity """
gcs_file_name = '/%s/%s' % (default_bucket, dyn.filename)
content_type = mimetypes.guess_type(dyn.filename)[0]
if dyn.extension in ['js', 'css']:
content_type += b'; charset=utf-8'
with gcs.open(gcs_file_name, 'w', content_type=content_type,
options={b'x-goog-acl': b'public-read'}) as f:
f.write(blob)
return gcs_file_name
摘自此要点:https://gist.github.com/voscausa/9541133
【解决方案2】:
BlobInfo 类有一个“content_type”字段,可用于设置对象的 mime 类型。