如何在node.js/express上发送文件。
我正在使用Rackspace Cloudfiles,想要将图像/视频发送到他们的远程存储,但我不确定它是否像读取文件(fs.readFileSync())并在请求体中发送数据那么简单,或者是这样吗?
标头应该是什么。
如果它是几GB大小的非常大的文件怎么办?
是否可以使用superagent (http://visionmedia.github.com/superagent)来执行此操作,或者是否有更好的库来发送文件?
请给我一些关于这方面的信息。
谢谢!
发布于 2013-02-13 11:27:22
app.get('/img/bg.png', function(req, res) {
res.sendFile('public/img/background.png')
})
https://expressjs.com/en/api.html#res.sendFile
使用"res.sendFile“。"res.sendfile“已弃用。
发布于 2012-02-18 14:01:11
对于大文件,您将希望使用node.js的概念,即通过管道将IO流连接在一起。您希望打开本地文件进行读取,启动对rackspace的HTTP请求,然后通过管道将数据事件从文件读取流程传送到HTTP请求流程。
Here's an article on how to do this。
Superagent适用于小文件,但由于superagent API假定在启动请求之前已将整个请求正文加载到内存中,因此它不是传输大文件的最佳方法。
通常,您不需要特别担心请求标头,因为节点的HTTP请求库将为您发送适当的标头。只要确保你使用你的应用程序接口需要的任何超文本传输协议方法(可能是POST),对于rackspace,你也需要在你的应用程序接口令牌中添加X-Auth-Token
额外头。
https://stackoverflow.com/questions/9321027
复制相似问题