Articles of knox amazon s3 client

在上传到S3的过程中,ZIP文件被破坏

我使用node.js和knox的putFile将一个zipfile upload到S3。 原来的压缩文件打开,从S3的压缩下载是腐败的。 以下是我正在使用的相关代码: var client = knox.createClient({ key: 'MY KEY HERE', secret: 'MY SECRET HERE', bucket: 'MY BUCKET HERE' }); var filename = 'example.zip'; var req = client.putFile(filename, filename, { 'x-amz-acl': 'public-read' }, function(err, res){ if (res.statusCode == 200) { console.log('moved '+filename+' to s3'); } else { console.log('failed to move to s3'); } }); […]

节点应用程序stream文件直接上传到amazon s3

你好:)我正在看我的节点应用程序streamHTTP POST文件直接上传到Amazon S3桶的可行性。 我正在寻找使用Formidable和Knox。 我不确定的部分是,S3要求您知道传输前文件中的总字节数。 我认为唯一的方法就是使用HTML5 File API(可能是Internet Explorer上的ActiveX控件)来检查客户端上的文件大小,并将其作为HTTP POST请求的一部分发送?

如何使一个套接字stream? imagemagick后连接https响应S3

我一般都是节点和编程,而且我一直在努力… 我想采取一个https响应,调整与graphicsmagick它,并将其发送到我的亚马逊S3桶。 看来,https res是一个IncomingMessage对象(我找不到任何有关信息),而来自graphicsmagick的stdout是一个Socket。 奇怪的是,我可以使用pipe道,并发送这两个到本地path的writeStream,res和stdout创build一个不错的新的resize的图像。 而且我甚至可以将资源发送到S3(使用knox),它可以工作。 但标准输出不想去S3: – / 任何帮助,将不胜感激! https.get(JSON.parse(queryResponse).data.url,function(res){ var headers = { 'Content-Length': res.headers['content-length'] , 'Content-Type': res.headers['content-type'] } graphicsmagick(res) .resize('50','50') .stream(function (err, stdout, stderr) { req = S3Client.putStream(stdout,'new_resized.jpg', headers, function(err, res){ }) req.end() }) }) knox – 连接到S3 – https://github.com/LearnBoost/knox graphicsmagick – 用于image processing – https://github.com/aheckmann/gm

显示从amazon s3与nodejs,expressjs和knox的图像

我认为这应该是一个直截了当的事情,但我不能find一个解决scheme 我试图找出在网站上显示存储在亚马逊S3上的图像的最佳方式。 目前我试图让这个工作(不成功) //app.js app.get('/test', function (req, res) { var file = fs.createWriteStream('slash-s3.jpg'); client.getFile('guitarists/cAtiPkr.jpg', function(err, res) { res.on('data', function(data) { file.write(data); }); res.on('end', function(chunk) { file.end(); }); }); }); //index.html <img src="/test" /> 是不是有可能直接从亚马逊显示图像? 我的意思是,减轻我的服务器上的负载的解决scheme将是最好的。

TypeError:在使用knox上传时,Object.keys在非对象上调用

我正在使用knox( https://github.com/LearnBoost/knox )将file upload到Amazon S3。 我刚将节点应用程序移至Amazon EC2,并在使用knox上传时出现以下错误。 我似乎已经安装了所有的库。 在nodejitsu上相同的代码是OK的。 我很新的节点/ JS,所以我不知道这是什么意思。 /home/ec2-user/foo/node_modules/knox/lib/auth.js:208 Object.keys(url.query).forEach(function (key) { ^ TypeError: Object.keys called on non-object at Function.keys (native) at Object.exports.canonicalizeResource (/home/ec2-user/foo/node_modules/knox/lib/auth.js:208:10) at Client.request (/home/ec2-user/foo/node_modules/knox/lib/client.js:275:22) at Client.put (/home/ec2-user/foo/node_modules/knox/lib/client.js:326:15) at Client.putStream (/home/ec2-user/foo/node_modules/knox/lib/client.js:408:18) at /home/ec2-user/foo/node_modules/knox/lib/client.js:378:20 at Object.oncomplete (fs.js:93:15)

如何使用node.js将pass-thru上传到Heroku上的s3?

这是我目前的代码。 我使用快速和knox,我不认为我做任何exception,但s3.putFile响应400状态代码,但空错误,并不上传文件。 var express = require('express'); var knox = require('knox'); var app = express(); app.use(express.bodyParser()); var s3 = knox.createClient({ key: process.env.AWS_ACCESS_KEY_ID, secret: process.env.AWS_SECRET_ACCESS_KEY, bucket: process.env.S3_BUCKET_NAME }); app.post('/upload', function(req, res, next) { var photo = req.files.photo; var s3Headers = { 'Content-Type': photo.type, 'x-amz-acl': 'public-read' }; s3.putFile(photo.path, photo.name, s3Headers, function(err, s3response){ //handle, respond }); }); 即使从cloud9在线编辑器/debugging器,这个相同的代码工作正常,而不是从Heroku。 我猜这跟“ […]

Node.js knox s3图像检索

我试图从节点s3中检索一个图像使用以下内容: app.get('/photos', function(req, res, next) { var data = ''; s3.get('/tmp/DSC_0904.jpg').on('response', function(s3res){ console.log(s3res.statusCode); console.log(s3res.headers); s3res.setEncoding('binary'); s3res.on('data', function(chunk){ data += chunk; }); s3res.on('end', function() { res.contentType('image/jpeg'); res.send(data); }); }).end(); }); 我接受build议,为什么这是行不通的。

nodejs knox放到s3结果是403

我试图在nodejs项目中使用knox上传到Amazon S3存储桶,但无法通过403错误。 我已经确定了关键,秘密和桶是正确设置的。 我真的可以从那些有更多经验的人那里得到一些帮助。 我的节点代码如下: var upload_test = function(){ var client = knox.createClient( { key: config.aws.key , secret: config.aws.secret , bucket: config.aws.bucket } ); fs.readFile('test.pdf', function(err,buf){ var req = client.put('6530/test.pdf', { 'Content-length': buf.length, 'Content-Type': 'application/pdf' }); req.on('response',function(res){ if(res.statusCode === 200){ console.log('Success!'); req.on('data',function(chunk) { console.log(chunk); }); } else { console.log("Error statusCode: " + res.statusCode); console.log("URL: " […]

knox和AWS SDK有什么不同,对于node.js?

…据我所知,他们做同样的事情:提供访问amazon web services。 有人可以提供这两个库之间的不同function列表吗? 为什么诺克斯存在,如果亚马逊已经提供了一个提供?

将configuration传递给控制器

我正在构build一个node.js应用程序,它将使用knox将file upload到我的S3存储桶。 我能够按预期与S3进行交互,但是我希望使控制器能够接收configuration,这样我就可以dynamic地构build带有configuration值的客户端。 我的问题是如何获得configuration参数调用堆栈到我的控制器而不是疏忽? 免责声明:我对Node.js比较陌生,所以可能只是我对输出差异缺乏了解。 和module.exports。* 以下是交互如何处理我的代码的示例: app.js … config = require('./config/config')['env']; require('./config/router')(app, config); … router.js module.exports = function(app, config) { … var controller = require('../app/controllers/home'); //Is there a way for me to pass config here? app.post('/upload', controller.upload); //Or here? … } home.js var knox = require('knox'); var client = knox.createClient({ … }); //I want […]