Articles of amazon s3

NodeJS:通过Knox上传纯文本到S3,我得到statusCode = 505?

我有以下代码,其中消息是一个JSONstring。 我试图上传到s3与消息的md5作为目标文件名。 我得到一个'505'statusCode。 我是NodeJS新手,不确定我在这里做错了什么? knoxInitParams = 'key': awsKey 'secret': awsPrivateKey 'bucket': bucket client = knox.createClient knoxInitParams buff = new Buffer message reqHeader = 'Content-Length': buff.length 'Content-Type': 'text/plain' 'x-amz-acl': 'private' req = client.put '/tmp/xxx.txt', reqHeader req.on 'response', (res) -> console.log res.statusCode console.log res.headers if res.statusCode is 200 console.log res.url req.on 'error', (err) -> console.error "S3 Error: […]

S3.putObject – callback永远不会被调用

我试图上传一个图像到S3,但是当我打电话给s3.putObject(params,callback),我的callback永远不会被调用,并没有错误logging。 以下是相关的代码: var params = { Key: key, Body: imageData, ContentLength: imageData.byteCount, ContentType: contentType, }; this.s3.putObject(params, function(err, data) { console.log('here'); if (err) { callback(err); return; } callback(null, key); }); 其中params是{ Key: 'e2f99bf3a321282cc7dfaef69fe8ca62.jpg', Body: {imageData parsed from request using node-multiparty}, ContentLength: 27802, ContentType: 'image/jpeg', } 我已经validation了这个.s3是有效的,type.sofput.sys是按照预期的函数。

当使用节点锐利的包来调整图像大小并上传到s3时,它会被旋转

我正在使用这个节点包: https://www.npmjs.com/package/sharp 我用它来调整图像大小,然后将其上传到亚马逊S3。 大多数图像是find的,但其中一些(我假设根据高宽比)得到旋转。 有没有办法来防止这个或它的原因? 这是我正在使用的代码的副本。 imageData是从file upload的s3存储桶文件中获取的数据。 正如你所看到的,我没有调用旋转函数。 反正有'锁'旋转? module.exports.resize = function(imageData, width, fileName){ sharp(imageData).resize(parseInt(width), null).toBuffer(function (err, data) { if (err) throw err; s3.putObject({ Bucket: aws.bucket, Key: 'images/' + width + '/' + fileName, Body: data }, function (err, data) { if (err) { console.log('Failed to resize image due to an error: ' + […]

使用节点js中的AWS sdk将整个目录树上传到S3

我目前上传单个对象到S3使用像这样: var options = { Bucket: bucket, Key: s3Path, Body: body, ACL: s3FilePermissions }; S3.putObject(options, function (err, data) { //console.log(data); }); 但是,当我有一个大的资源文件夹,例如,我使用AWS CLI工具。 我想知道,是否有一种本地的方式来做同样的事情与aws sdk(上传整个文件夹到S3)?

Socket.io无法将数据发送到客户端的独特空间

我正在使用Node.js创build媒体上传微服务。 该服务通过将上传的二进制数据接收到缓冲区,然后使用S3 npm包上载到S3存储桶来工作。 我试图使用该包中的eventEmitter,它显示上传到S3的数据量,并将其发回到正在上传的客户端(以便他们可以看到上传进度)。 我正在使用socket.io发送进度数据回到客户端。 我遇到的问题是socket.io中的.emit事件将上传进度数据发送给所有连接的客户端,而不仅仅是发起上传的客户端。 据我了解,一个套接字连接到'连接',这是由客户端'ID'镜像的默认房间。 根据官方文档,使用socket.to(id).emit()应该将数据范围只发送到客户端,但这不适合我。 更新示例代码: server.js: var http = require('http'), users = require('./data'), app = require('./app')(users); var server = http.createServer(app); server.listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); var io = require('./socket.js').listen(server); socket.js: var socketio = require('socket.io'); var socketConnection = exports = module.exports = {}; socketConnection.listen = function […]

节点aws-sdk s3file upload大小

当为nods.js使用aws-sdk npm插件时,可以使用以下代码(至AWS s3)在50kb上传pdf: var params = { Bucket: BUCKET, Key: pdf_key, Body: file, ContentType: 'application/pdf' }; var s3 = new AWS.S3(); s3.putObject(params, function(error, data) { console.log(data); console.log(error); if (error) { console.log(error); callback(error, null); } else { callback(null, pdf_key); } }); 但是,当上传一个11MB的pdf时,即使指定了ContentLength ,上传也会一直持续下去,即使超时2分钟。 问题是我该如何让aws s3接受大型pdf文件? UPDATE 对于这个问题,我还没有find任何文件或反驳。 更新2 我会接受显示这个或另一个可以做到这一点的框架的答案。 我需要这个框架才能够允许对对象进行authentication读取。 更新3我现在工作,但我还没有find一个理由,它不应该工作。 提前致谢!

使用Lambda节点从S3上的文件创buildS3上的zip文件

我需要创build一个Zip文件,其中包含位于我的s3存储桶中的一系列文件(video和图像)。 目前使用我的代码下面的问题是,我很快达到了Lambda的内存限制。 async.eachLimit(files, 10, function(file, next) { var params = { Bucket: bucket, // bucket name Key: file.key }; s3.getObject(params, function(err, data) { if (err) { console.log('file', file.key); console.log('get image files err',err, err.stack); // an error occurred } else { console.log('file', file.key); zip.file(file.key, data.Body); next(); } }); }, function(err) { if (err) { console.log('err', err); […]

我应该在哪里存储我的Node.js应用程序的密钥?

我真的很困难,我应该如何隐藏我的钥匙。 我需要隐藏的两个密钥是secrets.crypto和secrets.jwt …我打算使用Elastic Beanstalk在AWS上托pipe我的应用程序。 此外,我不知道在哪里我会把我的钥匙,以访问像我的Dynamodb和我的S3桶。 exports.generateToken = (type, user) => { if (!_.isString(type)) { return undefined; } try { //Turn the json object of the current user's id and the type of token into a string var stringData = JSON.stringify({ _id: user._id, type: type }); //Take the json string and encrypt it with a secret […]

特拉维斯CI。 NetworkingError:Node.js和AWS S3存储桶之间的CERT_UNTRUSTED错误

设置。 我在使用aws-sdk npm模块的Node.js上。 我在S3上有一个AWS存储桶和相关的访问和密钥。 钥匙在我的.travis.yml文件中。 我试图testing从我的Node.js应用程序保存图像到我的S3桶。 有趣的是…它一直在Travis上工作很长时间,然后几天前它停止了这个错误的工作: message: 'CERT_UNTRUSTED', code: 'NetworkingError', region: 'us-east-1', hostname: 'chyld-evernode-test.s3.amazonaws.com', retryable: true, time: Sat Dec 20 2014 18:35:45 GMT+0000 (UTC) 现在,它仍然可以在我的本地机器上正常工作,并且在部署到HEROKU后仍然可以工作。 我的猜测是特拉维斯刚刚发生的事情,导致我的testing失败。 想法?

从nodejs请求到s3的stream响应

你如何使用请求下载一个文件的内容,并直接使用aws-sdk作为节点将其传输到s3? 下面的代码给我的Object #<Request> has no method 'read' ,这使得它看起来像请求不会返回一个可读的stream… var req = require('request'); var s3 = new AWS.S3({params: {Bucket: myBucket, Key: s3Key}}); var imageStream = req.get(url) .on('response', function (response) { if (200 == response.statusCode) { //imageStream should be read()able by now right? s3.upload({Body: imageStream, ACL: "public-read", CacheControl: 5184000}, function (err, data) { //2 months console.log(err,data); }); […]