Tag: amazon s3

解密s3文件卸载使用unload命令与对称密钥encryption

我尝试使用AES对称密钥encryption解密由s3上传的文件,通过从redshift卸载命令上传。 如果我们使用AWS Java sdk下载aes key给s3客户端,那么它就可以正常工作。但是如果我们在下载文件后尝试手动解密它,它会给出javax.crypto.BadPaddingException: Given final block not properly padded错误。 手动解密文件的原因是我想解密使用node.js文件,据我所知,没有节点中的sdk,可以直接做到这一点。 我试过的Node.js代码: var AWS = require('aws-sdk'); var fs = require('fs'); var crypto = require('crypto'); var CryptoJS = require("crypto-js"); var algorithm = 'aes256'; var inputEncoding = 'hex'; var outputEncoding = 'utf-8'; var key = "symmetric key base 64"; //prod var data = fs.readFileSync('/tmp/files/myfile'); console.log(data); var […]

我想在S3中存储用户的个人资料图像,并将其显示在客户端 – 将S3对象展示给移动客户端的最佳做法是什么?

所以我有一个Android聊天应用程序,用户可以创build个人资料照片。 这些照片被发送到我的节点JS后端,我上传到我的AWS S3存储桶。 我将关键字存储在我的SQL数据库下的“ user ”表中的“ image_path ”列中。 现在,当用户访问应用中的多个其他用户的聊天室时,他们应该能够看到其他用户的个人资料照片。 目前,在join聊天室时,所有用户及其“ image_path ”列表被返回给客户端。 我正在考虑如何以有效的方式向用户展示个人资料图片,而不会违反最佳安全做法。 我正在考虑的第一个解决scheme如下: 使S3桶读取公共 客户端现在可以通过“ bucket-name.s3.amazonaws.com/image_path ”请求直接访问其他用户的个人资料图片。 我对这个方法的担心是S3显示下面的警告,这让我觉得这种方法有些严重的错误: You have provided public access to this bucket. We highly recommend that you never grant any kind of public access to your S3 bucket. 我正在考虑的第二个解决scheme是: 当在聊天室中检索用户时,遍历每个用户,从每个用户的“ image_path ”创build一个预先签名的URL,在X时间后过期,然后将其返回给客户端 我看到了一些问题。 首先,如果用户在聊天室中停留的时间长于预先签名的url的到期时间,该怎么办? 实现这个刷新逻辑听起来像头痛。 而且,生成所有预先签名的URL似乎会在后端花费很长时间。 推荐哪两种方法? 还有其他的select我应该考虑吗? 更新:所以目前我正在诉诸第一个方法,它工作正常 – […]

在AWS上部署反应Web应用程序

我期待在AWS上部署我的nodejs React Web应用程序。 目前,我在微软的Azure上部署了我的应用程序,这非常简单。 我只需要添加一个应用程序服务,并给我的git存储库作为源。 这照顾了托pipe我的应用程序。 我没有办法像在AWS上那样做。 我正在寻找类似的东西。 我应该如何在AWS中做到这一点?

Node.js Amazon S3 – 下载失败,出现SignatureDoesNotMatch错误

这是我用来下载文件的代码 var S3_KEY = 'xxxxxx'; var S3_SECRET = 'xxxxxx'; var S3_BUCKET = 'xxxxxx'; var s3Client = require('knox').createClient({ "key": S3_KEY, "secret": S3_SECRET, "bucket": S3_BUCKET }); // Pull some stuff down s3Client.get('myFile.zip').on( 'response', function(res){ console.log( "\n" + res.statusCode ); console.log( "\n" + res.headers + "\n" ); res.setEncoding( 'utf8' ); res.on('data', function( chunk ) { console.log( chunk ); […]

将用户直接上传到Amazon S3

在过去的几天里,我一直在努力工作。 基本上我有一个HTML格式的表单,它有一个type="file"input。 我希望这个文件被发送到nodejs,并直接stream到Amazon S3。 通过这种方式,我将在我的服务器上使用更less的存储空间(想象一下,如果100个人上传1g,最后我的服务器将有100g),所以如果我stream,我会占用一点点时间 有关如何与快递做到这一点的提示?

简单的aws-sdk为nodejs不工作

我正在尝试使用Amazon的节点插件在我的S3帐户上发生一个简单的过程https://github.com/aws/aws-sdk-js 这是我的节点代码: var AWS = require('aws-sdk'); var s3 = new AWS.S3(); AWS.config.update({ "accessKeyId": "ACCESS_KEY", "secretAccessKey": "SECRET", "region": "us-west-2" }); s3.createBucket({Bucket: 'testBucket'}); 我有一个感觉,我的问题有更多的与我的权限在S3上,但不知道。 我正在使用的用户附带有一个“AmazonS3FullAccess”策略。 还有什么我失踪?

用NodeJS检索远程文件进行存储?

我有NodeJS restify安装程序,我正在使用mongoose附件将图像附加到我的用户模型,并将图像存储在S3存储桶中。 我还允许用户使用Passport.JS使用Facebook,Google等进行注册。 问题是mongoose-attachments在调用.attach()函数时需要本地文件引用,PassportJS提供了一个远程URL – 所以我需要下载图像,然后从tmp附加它。 我应该如何用NodeJS来解决这个问题? 有没有一个好的模块,我可以用这个?

nodejs – 使用fs.createReadStream,requestjs,streaming和AWS S3 presigned url上传会引发错误

我的环境:Windows 8.1,NodeJS 0.10.0请求2.30.0 这是我基于Amazon SDK的示例和requestjs的文档尝试的 var params = {Bucket:'myprivateuniquebucket' ,Key:'mykey' ,Expires: 60}; var url = s3.getSignedUrl('putObject', params); fs.createReadStream('pic.png').pipe(request.put(url)); 这是我得到的错误 events.js:72 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET at errnoException (net.js:863:11) at TCP.onread (net.js:524:19) 然而,而不是使用fs.createReadStream当我使用下面的fs.readFile一切工作得很好 fs.readFile('pic.png', function (err, data) { request( { method: 'PUT' , uri: url , body: data } , function […]

适用于node.js的AWS sdk

我正在通过弹性beamstalk CLI上传一个node.js文件。 我使用AWS提供的样本。 var http = require("http"); var AWS = require('aws-sdk'); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello Worlds"); response.end(); }).listen(process.env.PORT || 8888); 一切工作正常,直到我包括: var AWS = require('aws-sdk'); 然后我得到这个错误消息。 502 Bad Gateway nginx/1.4.7 我该如何解决? 我只上传一个文件,server.js豆浆。 谢谢

当/节点liftAll不工作的S3对象

我正在尝试使用when/node提取Amazon S3对象中的所有函数。 var when = require('when'); var nodefn = require('when/node'); var AWS = require('aws-sdk'); var s3 = new AWS.S3(); var promisedS3 = nodefn.liftAll(s3); when(promisedS3.listBuckets()) .then(function(data) { console.log(data); }) 但是,它看起来像一个请求对象正在打印出来。 我对这里正在发生的事情感到不知所措,如果我单独提起这样的function,我可以得到正确的结果: var listBucketsP = nodefn.lift(s3.listBuckets.bind(s3)); 有任何想法吗?