Google cloud storage Google云存储:设置不正确的MIME类型

Google cloud storage Google云存储:设置不正确的MIME类型,google-cloud-storage,google-compute-engine,Google Cloud Storage,Google Compute Engine,我有一个Node.js服务器运行在Google Compute Engine虚拟实例上。服务器将传入文件流式传输到Google云存储GCS。我的代码在这里: 我在XML头中传递内容类型,对于图像/jpegMIME类型来说效果很好,但是对于视频/mp4来说,GCS正在以应用程序/octet流的形式编写文件 这没什么大不了的,所以我完全不知道会出什么问题。。。欢迎任何意见 更新/解决方案 问题的原因是,multiparty模块正在我传递到GCS管道的“part”对象上创建content-type:o

我有一个Node.js服务器运行在Google Compute Engine虚拟实例上。服务器将传入文件流式传输到Google云存储GCS。我的代码在这里:

我在XML头中传递
内容类型
,对于
图像/jpeg
MIME类型来说效果很好,但是对于
视频/mp4
来说,GCS正在以
应用程序/octet流
的形式编写文件

这没什么大不了的,所以我完全不知道会出什么问题。。。欢迎任何意见

更新/解决方案


问题的原因是,
multiparty
模块正在我传递到GCS管道的“part”对象上创建
content-type:octet-stream
头。这导致地面军事系统接收到两种
内容类型
,其中
八位组
部分是最后一种。因此,GCS将其用于入站文件。

谷歌云存储是内容类型不可知的,即它以相同的方式处理任何类型的内容(视频、音乐、zip文件、文档,您可以随意选择)


但我只是想告诉你一些想法

首先,我认为您上传的视频()在上传后大小会有所不同。因此,它属于
应用程序/
。(类似于本规范第3.3节)

为了纠正这一点,我认为您需要在上传文件之前和之后存储mp4元数据


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

好的,看看您的HTTP请求和响应,似乎在作为初始HTTP请求的一部分返回的URL中指定了内容类型。初始HTTP请求应返回可用于上载文件的端点。我不知道为什么会在那里指定,但查看文档(-start a resumable session),它说需要指定X-Upload-Content-Type以及其他一些标题。这似乎没有在上面提到的HTTP请求中指定。所使用的库可能存在问题,但返回的端点与文档中指定的端点不同


查看“示例:可恢复会话启动请求”,如果您指定的标题与此处建议的相同,则查看是否仍然存在相同的问题。

我认为您可能没有正确阅读iana.org资源;你会注意到你找不到image/jpg或image/jpeg。。。但是这些很好用。我相信只要文件类型列在表中,那么它就是一个有效的。。。mp4列在视频下。我可能错了……好吧,你是对的,视频/mp4应该能正确地用于地面军事系统。我尝试手动上传mp4视频,但它被指定为“视频/mp4”mime类型。在这方面你是对的。你能提供你正在发送的http请求吗?你是声明了内容类型还是让Google决定的?你能发布你的http请求吗?您确定在http请求中将video/mp4设置为内容类型吗?@markovuksanovic感谢您的帮助;请参见上文。您能确认这是多部分上传吗?在这种情况下,应该发送多个http请求吗?您还可以为这个请求(以及其他请求,如果有的话)提供http响应头和正文吗?@markovuksanovic我对大量http的了解程度有点低--我如何验证它是多部分的?上面包含的其他信息(来自Google的响应的console.log)。您可以使用wireshark跟踪http。确保您不使用HTTPS请求,而只使用HTTP(仅用于测试目的)。您还可以向我发送/共享捕获文件,以便我可以查看发生的情况。