Tag: 亚马逊 s3

使用aws-sdk将svresize的图像上传到s3

所以我想要做的是从一个URLstream图像,处理它与graphicsmagick和stream上传到S3。 我只是没有得到它的工作。 将处理后的图像stream式传输到本地磁盘(使用fs.createWriteStream)可以毫无问题地工作。 当我缓冲我的stream,s3中的最终图像至less有预期的大小(kb方式),但我无法打开该图像。 那是我目前的进展: var request = require('request'); var gm = require("gm"); var AWS = require('aws-sdk'); var mime = require('mime'); var s3 = new AWS.S3(); gm(request('http://www.some-domain.com/some-image.jpg'), "my-image.jpg") .resize("100^", "100^") .stream(function(err, stdout, stderr) { var str = ''; stdout.on('data', function(data) { str += data; }); stdout.on('end', function(data) { var data = { Bucket: "my-bucket", Key: […]

NodeJS如何从aws s3存储桶下载文件到磁盘?

我的目标: 显示一个对话框,提示用户保存从aws下载的文件。 我的问题: 我目前使用的是awssum-amazon-s3来创build一个下载stream。 然而,我只设法将文件保存到我的服务器或stream到命令行…正如你可以从我的代码看到我的最后一次尝试是尝试手动设置内容处置标题失败。 我不能使用res.download()作为标题已被设置? 我怎样才能达到我的目标? 我的节点代码: app.post('/dls/:dlKey', function(req, res, next){ // download the file via aws s3 here var dlKey = req.param('dlKey'); Dl.findOne({key:dlKey}, function(err, dl){ if (err) return next(err); var files = dl.dlFile; var options = { BucketName : 'xxxx', ObjectName : files, }; s3.GetObject(options, { stream : true }, function(err, data) { […]

parsingstream在Nodejs中的对象

我正在尝试从 Node.Js中的Amazon S3存储获取对象。 当我将它保存到一个文件时 ,这完美的工作。 amazon.getObject = function () { var options = { BucketName : 'mybucket', ObjectName : 'path/to/my.json', ResponseContentType : 'application/json' }; s3.GetObject(options, function(err, data) { var fs = require('fs'); var fd = fs.openSync('helloaa.json', 'w+'); fs.writeSync(fd, data.Body, 0, data.Body.length, 0); fs.closeSync(fd); }); }; 在。 helloaa.json是: { "hello": 1, "world": 3 } 但。 我不想将数据写入磁盘上的文件。 […]

通过AWS SDK创build签名的S3和Cloudfront URL

是否有人成功使用AWS开发工具包生成签名的URL到S3存储桶中的对象,这些存储也可以通过CloudFront? 我正在使用JavaScript AWS SDK ,通过S3链接生成签名的URL非常简单。 我刚刚创build了一个私人存储分区,并使用以下代码来生成URL: var AWS = require('aws-sdk') , s3 = new AWS.S3() , params = {Bucket: 'my-bucket', Key: 'path/to/key', Expiration: 20} s3.getSignedUrl('getObject', params, function (err, url) { console.log('Signed URL: ' + url) }) 这很好,但我也想暴露一个CloudFront的URL给我的用户,所以他们可以得到使用CDN增加的下载速度。 我设置了一个修改存储桶策略以允许访问的CloudFront分配。 但是,这样做后,任何文件可以通过CloudFront URL访问,亚马逊似乎忽略了我的链接签名。 在阅读了更多关于这个之后,我已经看到人们生成一个.pem文件来获得使用CloudFront的签名URL,但是为什么S3不需要? 似乎getSignedUrl方法只是使用AWS Secret Key和AWS Access Key进行签名。 有没有人得到了这样的工作之前? 更新:经过进一步研究,CloudFront似乎处理与S3完全不同的URL签名[link] 。 不过,我还不清楚如何使用Javascript创build签名的CloudFront URL。

如何从Node.js中的S3 getObject得到响应?

在一个Node.js项目中,我试图从S3获取数据。 当我使用getSignedURL ,一切正常。 aws.getSignedUrl('getObject', params, function(err, url){ console.log(url); }); 我的参数是: var params = { Bucket: "test-aws-imagery", Key: "TILES/Level4/A3_B3_C2/A5_B67_C59_Tiles.par" 如果我将URL输出到控制台并粘贴到Web浏览器中,它会下载我需要的文件。 但是,如果我尝试使用getObject我会遇到各种奇怪的行为。 我相信我只是不正确地使用它。 这是我试过的: aws.getObject(params, function(err, data){ console.log(data); console.log(err); }); 输出: { AcceptRanges: 'bytes', LastModified: 'Wed, 06 Apr 2016 20:04:02 GMT', ContentLength: '1602862', ETag: '9826l1e5725fbd52l88ge3f5v0c123a4"', ContentType: 'application/octet-stream', Metadata: {}, Body: <Buffer 01 00 00 00 … > […]

AWS S3对象列表

我正在使用node.js使用aws-sdk。 我想列出指定文件夹中的图像,例如 我想列出这个位置的所有文件和文件夹,但不是文件夹(图像)的内容。 在aws-sdk中有列表Object的function ,但是它也列出了所有的嵌套文件。 这里是代码: var AWS = require('aws-sdk'); AWS.config.update({accessKeyId: 'mykey', secretAccessKey: 'mysecret', region: 'myregion'}); var s3 = new AWS.S3(); var params = { Bucket: 'mystore.in', Delimiter: '', Prefix: 's/5469b2f5b4292d22522e84e0/ms.files' } s3.listObjects(params, function (err, data) { if(err)throw err; console.log(data); });

使用aws-sdk和Node / Express将简单的file upload到S3

我错过了我所做的一切,下面是我所拥有的: HTML <html> <body> <form method="POST" action="/upload" enctype="multipart/form-data"> <div class="field"> <label for="image">Image Upload</label> <input type="file" name="image" id="image"> </div> <input type="submit" class="btn" value="Save"> </form> </body> </html> Port 5000是我的Node.js服务器的端口。 在这个例子中,我正在使用POST /upload ,而且工作正常。 module.exports = function(app, models) { var fs = require('fs'); var AWS = require('aws-sdk'); var accessKeyId = process.env.AWS_ACCESS_KEY || "xxxxxx"; var secretAccessKey = process.env.AWS_SECRET_KEY || "+xxxxxx+B+xxxxxxx"; […]

使用适用于Node.js的AWS开发工具包将二进制file upload到S3

更新:为了将来的参考,亚马逊现在已经更新了在提问时那里的文档。 根据@Loren Segal的评论如下: 我们已在最新的预览版本中更正了文档,以正确logging此参数。 抱歉关于混音! 我正在试用Node.Js的AWS开发工具包预览版,并且希望使用putObject将压缩的tar包上传到S3。 根据文档 , Body参数应该是… 正文 – (Base64编码数据) …因此,我正在尝试下面的代码… var AWS = require('aws-sdk'), fs = require('fs'); // For dev purposes only AWS.config.update({ accessKeyId: 'key', secretAccessKey: 'secret' }); // Read in the file, convert it to base64, store to S3 fs.readFile('myarchive.tgz', function (err, data) { if (err) { throw err; } var […]

使用节点fs从aws s3存储桶中读取文件

我试图读取aws s3存储桶中使用的文件 fs.readFile(file, function (err, contents) { var myLines = contents.Body.toString().split('\n') }) 我已经能够使用节点aws-sdk下载和上传一个文件,但是我不知道如何简单地阅读和parsing内容。 这里是我从s3读取文件的一个例子: var s3 = new AWS.S3(); var params = {Bucket: 'myBucket', Key: 'myKey.csv'} var s3file = s3.getObject(params)