var express = require("express");
var app = express();
var async = require('async');
var fs = require('fs');
var client = redis.createClient();
var multiparty = require('multiparty');
var util = require('util');
app.post('/',function(req,res){
var form = new multiparty.Form();
form.parse(req, function(err, fields, files) {
client.get(fields.otp, function(err, reply) {
var oldpath = files.file[0].path;
var newpath = path + files.file[0].originalFilename;
fs.rename(oldpath, newpath, function (err) {
if (err) throw err;
res.write('File uploaded and moved!');
res.end();
});
}
}
app.listen(2001,function(){
console.log("Server is running on port 2001");
});
をファイルをチェックし、完全アップロード:あなたは、単にそのファイルをアップロードしていますS3へ?もしそうなら、実際にクライアントがファイルを直接S3にアップロードさせることができます。これにより、ノードサーバーはGBのデータを処理する必要がなくなります。そして、S3はあなたのファイルをあなたのサーバーより速く誰にでも返す可能性があります。 – Randy
S3へのアップロードは良い解決策のようです。あなたがそれを推薦しているのを見て、セキュリティの面でこれを行うのは安全でしょうか?確かに誰もあなたのS3にファイルをアップロードし始めないようにするために、ある種の認証方式がありますか? – jiminssy
クライアントはAPIにS3へのアクセストークンを要求します。あなたのAPIは基本的にAmazonが提供するS3ライブラリを使ってこのトークンを作成します。これは一時的なトークンで、クライアントがS3に接続してファイルをアップロードします。アップロードしたら、パスまたは識別子のいずれかを使用してAPIにコールバックすることができます。しかし、あなたのAPIはS3ファイルを使うことができます。 – Randy