如何在写入文件到谷歌云存储时设置MIME类型
我正在把一个wav和一个mp3文件保存到谷歌云存储,而不是使用blobstore,具体是按照这个说明来做的。不过在这个过程中,文件的MIME类型丢失了,结果变成了binary/octet-stream
,这让我的应用程序出现了问题。
我该如何在写入文件时设置MIME类型呢?
有没有办法根据文件类型自动设置MIME类型?比如,如果是mp3文件就保存为audio/mpeg,如果是wav文件就保存为audio/wav?
2 个回答
0
BlobInfo类里面有一个叫“content_type”的字段,你可以用它来设置这个对象的文件类型。
2
这里有一个例子:
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