【发布时间】:2014-01-18 20:53:06
【问题描述】:
我有一个在 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。
这没什么,所以我完全不知道可能出了什么问题......欢迎任何想法!
更新/解决方案
问题是由于 multiparty 模块在我传递到 GCS 管道的“部分”对象上创建 content-type: octet-stream 标头。这导致 GCS 收到两个content-types,其中octet 部分是最后一个。结果,GCS 将其用于入站文件。
【问题讨论】:
-
能否请您发布您的 http 请求是什么样的?你确定video/mp4真的在http请求中设置为内容类型吗?
-
@markovuksanovic 谢谢你的帮助;请看上面
-
你能确认这是分段上传吗?在那种情况下应该发出多个http请求?您是否还可以为此请求(以及其他请求(如果有))提供 http 响应标头和正文?
-
@markovuksanovic 我对大量 HTTP 的知识水平有点低——如何验证它是多部分的?上面包含的其他信息(来自 Google 的响应的 console.log)。
-
可以使用wireshark来追踪http。确保您不使用 HTTPS 请求,而仅使用 HTTP(仅用于测试目的)。您也可以向我发送/分享捕获文件,以便我查看正在发生的事情。
标签: google-cloud-storage google-compute-engine