如何在将文件写入谷歌云存储时设置MIME类型

时间:2014-05-05 05:38:22

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

我按照instructions将wav和mp3文件保存到谷歌云存储(而不是blobstore)。但是,这样做会导致文件的MIME类型丢失,而是会转换为binary/octet-stream,但遗憾的是它会破坏我正在使用的应用程序。

  1. 如何在编写文件时设置MIME类型?

  2. 有没有办法根据文件自动设置MIME类型,即如果它是一个mp3文件,它会被保存为audio / mpeg,如果wav是audio / wav?

    < / LI>

2 个答案:

答案 0 :(得分:3)

以下是一个例子:

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

答案 1 :(得分:0)

BlobInfo类有一个“content_type”字段,可用于设置对象的mime类型。