首页 文章

Google Cloud 端存储:设置不正确的MIME类型

提问于
浏览
3

我有一个在Google Compute Engine虚拟实例上运行的Node.js服务器 . 服务器将传入文件传输到Google Cloud Storage GCS . 我的代码在这里:Node.js stream upload directly to Google Cloud Storage

我在XML标头中传递了 Content-Type ,它对于 image/jpeg MIME类型工作得很好,但对于 video/mp4 ,GCS正在将文件写为 application/octet-stream .

对此并不多,所以我完全不知道可能出现什么问题......欢迎任何想法!

Update/Solution

问题是由于 multiparty 模块在'part'对象上创建了 content-type: octet-stream Headers ,我将其传递到GCS管道 . 这导致GCS收到两个 content-types ,其中 octet 部分是最后一个 . 因此,GCS将其用于入站文件 .

2 回答

  • 1

    好的,看看您的HTTP请求和响应,似乎在作为初始HTTP请求的一部分返回的URL中指定了content-type . 初始HTTP请求应返回可用于上载文件的 endpoints . 我不确定为什么在那里指定但是看文档(https://developers.google.com/storage/docs/json_api/v1/how-tos/upload - 启动一个可恢复的会话)它说需要指定X-Upload-Content-Type,以及其他一些 Headers . 这似乎没有在上面提到的HTTP请求中指定 . 使用的库可能存在问题,但返回的 endpoints 看起来不像文档中指定的那样 .

    看看https://developers.google.com/storage/docs/json_api/v1/how-tos/upload,"Example: Resumable session initiation request",如果您指定相同的 Headers ,请查看是否仍有相同的问题 .

  • 0

    Google Cloud 端存储是内容类型无关的,即它以相同的方式处理任何类型的内容(视频,音乐,zip文件,文档,您的名字) .


    但只是提出一些想法,

    首先,我相信您上传的视频()在上传后的大小或多或少 . 所以,它落在 application/<sub type> . (类似于RFC 4337的第3.3节)

    为了使其正确,我相信您需要在上传文件之前和之后存储mp4元数据 .

    请告诉我们您的解决方案 .

相关问题