如何在node.js/express上发送文件.
我正在使用Rackspace Cloudfiles并希望将图像/视频发送到他们的远程存储,但我不确定它是否像读取文件(fs.readFileSync())一样简单并在请求正文中发送数据,或者是它?
标题应该是什么.
如果它是几GB上的一个非常大的文件怎么办?
是否可以使用superagent(http://visionmedia.github.com/superagent)或者是否有更好的库来发送文件?
请告诉我一些有关此事的信息.
谢谢!
den*_*que 50
app.get('/img/bg.png', function(req, res) {
res.sendFile('public/img/background.png')
})
Run Code Online (Sandbox Code Playgroud)
https://expressjs.com/en/api.html#res.sendFile
使用"res.sendFile"."res.sendfile"已弃用.
对于大型文件,您将需要使用node.js的管道IO流的概念.您希望打开本地文件以进行读取,启动对机架空间的HTTP请求,然后将数据事件从文件读取进程传输到HTTP请求进程.
Superagent适用于小文件,但由于superagent API假定您的整个请求主体在启动请求之前已加载到内存中,因此它不是大文件传输的最佳方法.
通常,您不需要特别担心请求标头,因为节点的HTTP请求库将为您发送适当的标头.只需确保您使用API所需的任何HTTP方法(可能是POST),看起来对于rackspace,您还需要X-Auth-Token使用API令牌添加额外的标头.
I am using Rackspace Cloudfiles and wanna send images/videos to their remote storage but I am not sure that it's as simple as reading the file (fs.readFileSync()) and send the data in the request body, or is it?
你应该永远不会使用fs.readFileSync一般。当您使用它或任何其他称为 的方法时somethingSync,您会在该调用期间阻塞整个服务器。在 node.js 程序中进行同步调用的唯一可接受的时间是在启动期间。
标题应该是什么。
是否可以为此使用超级代理(http://visionmedia.github.com/superagent),或者是否有更好的库来发送文件?
虽然我没有任何使用超级代理的经验,但我相信它会正常工作。只需确保您阅读 API 文档并根据其规范提出请求即可。
| 归档时间: |
|
| 查看次数: |
64529 次 |
| 最近记录: |