Articles of 上传

在MEAN堆栈应用程序中上传逻辑的适当位置是什么?

所以我试图用mean stack(mongodb,express,angular,node.js)开发完整的应用程序。 我明白,使用快递和节点,我可以创build一个restAPI与端点来抓取我的应用程序的数据。 我也明白,棱angular仅适用于FRONT END。 所以我的问题是这样的…当你有一个像上传表单,你想上传一个图像到服务器,你想要创build一个叫“/ api / upload /”的API端点,并拥有所有的逻辑用于在该端点内上传图像,还是希望将所有上传逻辑上传到其他位置,然后仅通过发送请求将文件名提供给“/ api / upload /”端点?

节点以指定的块大小读取文件

目标:将大file upload到AWS Glacier,而不将整个文件保留在内存中。 我现在正在使用fs.readFileSync()上传到冰川,而且正在运行。 但是,我需要处理大于4GB的文件,我想同时上传多个块。 这意味着转移到分段上传。 我可以select块大小,但冰河需要每个块大小相同(除了最后一个) 这个线程表明我可以在读取stream上设置一个块大小,但是我并不确定是否能够得到它。 任何有关如何获得一致的部分,而不必将整个文件读入内存并手动拆分的信息? 假设我可以达到这一点,我只是要使用群集,有几个进程将数据stream尽快上传到AWS。 如果这似乎是错误的方式来平行的工作,我会在那里的build议。

使用Express(node.js)dynamic限制上传文件大小

我正在开发一个简单的应用程序,允许用户上传他们的内容。 我想限制Express将接受的文件大小。 我知道我可以使用 app.use(express.limit('2mb')); 但我想dynamic地改变极限 。 某些用户将有更高的限制。 最好的解决scheme是先检查content-length标题,然后在文件大小低于限制的情况下开始parsing上传,但是Express会自动将file upload到磁盘(/ tmp目录)。 所以如果有人发送1GB的文件,这个文件将被parsing并保存到磁盘,即使我不想这样做。 提前致谢!

req.form不是一个实例化的多方表单对象

我正在使用具有多部分中间件的快速节点框架。 设置multipart defer: true选项让我可以访问req.form中的req.form ,但它似乎不是一个有效的多方Form对象实例。 这只是一个普通的旧JS对象。 问题在于我无法使用表单对象上的多方文档中列出的function。 听事件,parsing表单等是行不通的。 我使用这个build议,而不是折旧bodyParser()与快递: app.use(express.urlencoded()); app.use(express.json()); app.use(express.multipart({ limit: '900mb', defer: true })); 在我的路线中: app.post('/api/videos/upload', isLoggedIn, function(req, res) { var form = req.form; form.on('progress', function(bytesReceived, bytesExpected) { console.log(bytesReceived + ' / ' + bytesExpected); }); 我在日志中没有得到任何进展。 我看到的所有例子都假设这个表单对象是真正的交易,而不仅仅是一个数据对象。 他们有什么不同? 我错过了什么? 我看到了一些解决scheme,build议直接编写我自己的使用多方的中间件。 我考虑过这个,但是我在不需要这个控制级别的不同路由中使用多部分中间件来处理其他表单。 是否可以使用多部分,并写我自己的中间件只是为了上传? 如果我要去兔子洞,我会解释我的最终目标。 我想在上传开始之前检查预期的字节,所以我可以立即将它踢回到前端。 在找出文件太大之前,没有理由让用户等待900MB上传。 如果任何人有任何的洞察力如何实现这一点,请分享。

用HTML将file upload到Node.js

我正在尝试使用Node.js服务器来上传文件的API。 我得到undefined回应。 我正在按照这个教程https://www.youtube.com/watch?v=UtfZ-5WKpro Node.js的: var express = require('express'); var app = express(); var bodyParser = require('body-parser'); app.use(bodyParser.json()); app.post("*", function(req, res) { res.end(JSON.stringify(req.files) + "\n"); }); console.log("Server at 8080"); app.listen(8080); HTML <html> <head> <form method="post" enctype="multipart/form-data" action="http://localhost:8080"> <input type="file" name="myimage" /> <input type="submit" name="submit" value="submit"/> </form> </head> </html> 点击提交后,我得到了undefined响应。

有没有办法使用node.js从url上传到S3?

我发现这个问题,但似乎没有回答我的问题,因为我认为它仍然在谈论本地文件。 我想采取,说,和imgur.com链接并上传到S3使用节点。 是knox能够这样做,还是我需要使用别的东西? 不知道从哪里开始。

Node.js:处理file upload,“数据”事件从不叫

描述问题的一个简单的例子…客户端(使用HTML5文件API和XMLHttpRequest2): var xhr = new XMLHttpRequest () xhr.open ('POST', '/upload', true) xhr.send (file) /* sends as plain binary blob, no multipart/form-data */ 服务器端: var size = 0 request.setEncoding ('binary') request.on ('data', function (chunk) { console.log ('Received ' + (size += chunk.length) / (1024.0 * 1024.0) + ' Mb') }) request.on ('end', function (chunk) { console.log […]

即使服务器返回redirect(3XX),HTTP客户端是否也向服务器发送请求主体?

我目前正在构build一个接收客户端上传(可能是大文件)的node.js express Web服务。 我有一个端点(我们称之为FOO),它为每个请求返回一个redirect,告诉客户端在哪里上传数据(我们称之为URL DEST)。 我担心客户端会将请求正文中的数据发送到FOO,即使FOO保证redirect。 我意识到端点FOO可以忽略请求体中的数据,但是我担心客户端正在上传数据两次。 一次到FOO,一次到DEST。 有谁知道这是否与HTTP客户端的行为一致? 如果是这样,有没有办法阻止HTTP客户端上传两次?

上传文件到S3(法兰克福)获得错误授权AWS4-HMAC-SHA256

嗨:)当我尝试直接上传文件到AWS S3,我得到这个错误: The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. 好像我错过了v4 hmac授权签名的签名:\ html文件: <form action="https://mybucket.s3.eu-central-1.amazonaws.com/" enctype="multipart/form-data" id="form-upload" method="POST"> <input type="hidden" name="AWSAccessKeyId" value="myPublicKey"> <input type="hidden" name="acl" value="private"> <input type="hidden" name="success_action_redirect" value="http://localhost:8080/uploadAfter"> <input type="hidden" name="Content-type" value=""> <!– any file format –> <input type="hidden" name="x-amz-algorithm" value="AWS4-HMAC-SHA256"> <!– The following are injected by Javascript –> […]

上传图片以用node.jsparsing

我想上传一个图像parsing,看起来我的代码工作,我收到parsing答案与图像的名称和url,但是当我去那个url没有显示。 这是我的代码: // function to upload file: Parse.file = function(url,data) { var promise = new Promise(); var fs = require('fs'); var opts = { url: url, method: 'POST', multipart: [{ 'content-type': data.contentType, 'body': fs.readFileSync(data.path) }], headers: { 'X-Parse-Application-Id': id, 'X-Parse-REST-API-Key': key, 'X-Parse-Revocable-Session': 1, } }; Request(opts, function(err, response, body) { if (err) return promise.reject(err); if […]