Articles of amazon web services

使用nodeJs和AWS调整图像大小

我正尝试使用nodejs从AWS S3存储桶中获取图像,将其大小调整为4种不同的大小,然后将其保存回同一个存储桶中,但保存到一个文件夹中,每个文件夹又包含4个文件夹,每个文件夹用于新的大小。 当我运行该函数时,我得到以下错误: Unable to resize devimageresize/diavelBlack.jpg and upload to / due to an error: Error: Stream yields empty buffer 我是相对较新的nodejs,我不知道我正在写代码。 什么是造成这个错误? 这是我的代码: // dependencies var async = require('async'); var AWS = require('aws-sdk'); var gm = require('gm'); var util = require('util'); // get reference to S3 client var s3 = new AWS.S3(); exports.handler = function(event, […]

Aws lambda描述实例超时

我有这个简单的describe实例函数,我试图通过AWS Lambda在nodejs中运行: var AWS = require('aws-sdk'); AWS.config.region = 'us-east-1'; exports.handler = function(event, context) { console.log("\n\nLoading handler\n\n"); var ec2 = new AWS.EC2(); ec2.describeInstances(function(err, data) { console.log("\nIn describe instances:\n"); if (err) { console.log(err, err.stack); context.done(null, 'Function Finished from error!'); // an error occurred }else { console.log("\n\n" + data + "\n\n"); context.done(null, 'Function Finished with data!'); // successful […]

基于Cognito ID的S3文件夹访问的IAM策略

我创build了IAM策略,允许Cognito用户写入我的S3存储桶,但是我想根据他们的Cognito ID将它们限制到文件夹。 我在这里遵循了亚马逊的指示,并创build了如下所示的策略: { "Effect": "Allow", "Action": ["s3:PutObject","s3:GetObject"], "Resource": [ "arn:aws:s3:::mybucket/myappfolder/${cognito-identity.amazonaws.com:sub}*" ] } 但是当我尝试使用AWS iOS SDK的v2进行上传时,我得到一个访问被拒绝的错误。 如果我修改了资源的最后一个path组件,用我从SDK的AWSCognitoCredentialsProvider获得的显式identityId值来replace${cognito-identity.amazonaws.com:sub} 。 { "Effect": "Allow", "Action": ["s3:PutObject","s3:GetObject"], "Resource": [ "arn:aws:s3:::mybucket/myappfolder/us-east-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx*" ] } 我的理解是,这些应该等同于相同的东西。 我是否在我的政策中遗漏了某些内容,或者是否应该在我的上传请求中使用不同的path? ** 更新 ** 我原本在iOS中有这个问题,所以今天晚上我尝试在node.js中做同样的事情,结果是相同的。 以下是我在节点中使用的简单代码: var s3 = new AWS.S3(); AWS.config.region = 'us-east-1'; AWS.config.credentials = new AWS.CognitoIdentityCredentials(AWSParams); AWS.config.credentials.get(function (err) { if (!err) { console.log("Cognito Identity […]

为什么当我永远使用我的节点应用程序进程不断停止?

在免费层的Amazon EC2实例上,我设置了一个运行在express上的简单的node.js Hello World应用程序。 如果我运行npm start ,我的应用程序运行良好,我可以从我的浏览器中打开,我看到以下输出: > myappname@0.0.0 start /home/ec2-user/app > node ./bin/www 我已经在全球安装了永久工具。 当我forever start app.js运行forever start app.js ,我看到: warn: –minUptime not set. Defaulting to: 1000ms warn: –spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms info: Forever processing file: app/app.js 但是,当我检查forever list ,我看到过程已经停止: info: […]

如何在客户端将可查看file upload到Amazon S3?

让我开始说,我通常很不愿意发表这个问题,因为我总觉得互联网上的所有东西都有答案。 花了无数小时寻找这个问题的答案后,我终于放弃了这个声明。 假设 这工作: s3.getSignedUrl('putObject', params); 我想做什么? 使用getSignedUrl方法通过PUT(从客户端)将file upload到Amazon S3 允许任何人查看上传到S3的文件 注意:如果有更简单的方法允许客户端(iPhone)通过预先签名的URL上传到Amazon S3(并且不需要公开证书客户端) 主要问题* 查看AWSpipe理控制台时,上传的文件具有空白的权限和元数据集。 查看上传的文件时(例如,通过双击AWSpipe理控制台中的文件),我得到一个AccessDenied错误。 我试过了什么? 尝试#1:我的原始代码 在NodeJS中,我生成一个预先签名的URL,如下所示: var params = {Bucket: mybucket, Key: "test.jpg", Expires: 600}; s3.getSignedUrl('putObject', params, function (err, url){ console.log(url); // this is the pre-signed URL }); 预先签名的URL看起来像这样: https://mybucket.s3.amazonaws.com/test.jpg?AWSAccessKeyId=AABFBIAWAEAUKAYGAFAA&Expires=1391069292&Signature=u%2BrqUtt3t6BfKHAlbXcZcTJIOWQ%3D 现在我通过PUT上传文件 curl -v -T myimage.jpg https://mybucket.s3.amazonaws.com/test.jpg?AWSAccessKeyId=AABFBIAWAEAUKAYGAFAA&Expires=1391069292&Signature=u%2BrqUtt3t6BfKHAlbXcZcTJIOWQ%3D 问题 我得到上面列出的*主要问题 尝试#2:在PUT上添加内容types和ACL 我也尝试在代码中添加Content-Type和x-amz-acl,像这样replace参数: var params […]

将项目放在使用适用于Node.js的AWS开发工具包的DynamoDB表上

我不熟悉javascript和node.js,想知道是否有人可以帮助我找出通过node.js SDK将新项目放到AWS Dynamodb上现有表的语法。 这是我迄今为止。 有什么我想要做的例子吗? 如果有人能指出我的方向正确的话,我会非常感激。 var AWS = require('aws-sdk'); AWS.config.loadFromPath('./config.json'); AWS.config.update({region: 'us-east-1'}); var dynamodb = new AWS.DynamoDB(); var item = { // I need to put the an item with a the primary key of "id", and an attribute called "item" // I'm new to js and node.js, so if somebody could help me […]

如何通过Amazon API Gateway + Lambda(节点)获取用户的公共IP地址

我目前正在写一个Node.js的lambda函数,我想logging传入的请求者的公共IP地址。 我一整天都在浏览API网关和Lambda文档,但还没有find解决scheme。 lambda event对象是否包含可用于提取用户IP的请求元数据?

亚马逊S3服务器上的Concat MP3 /媒体audio文件

我想连接在Amazon S3服务器上上传的文件。 我怎样才能做到这一点。 本地机器上的串联我可以使用以下代码。 var fs = require('fs'), files = fs.readdirSync('./files'), clips = [], stream, currentfile, dhh = fs.createWriteStream('./concatfile.mp3'); files.forEach(function (file) { clips.push(file.substring(0, 6)); }); function main() { if (!clips.length) { dhh.end("Done"); return; } currentfile = './files/' + clips.shift() + '.mp3'; stream = fs.createReadStream(currentfile); stream.pipe(dhh, {end: false}); stream.on("end", function() { main(); }); } main();

我如何把对象的amazon s3使用presigned url?

我正在尝试使用签名的url将图片上传到s3存储桶。 以下是我的桶政策: { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::12345678:user/myuser", "arn:aws:iam::12345678:root" ] }, "Action": [ "s3:List*", "s3:Put*", "s3:Get*" ], "Resource": [ "arn:aws:s3:::myBucket", "arn:aws:s3:::myBucket/*" ] } ] } 我正在从服务器生成签名的url,如下所示: var aws = require('aws-sdk'); aws.config = { accessKeyId: myAccessKeyId, secretAccessKey: mySecretAccessKey }; var s3 = new aws.s3(); s3.getSignedUrl('putObject', { Bucket: […]

如何将ReactJS + NodeJS Express应用程序部署到AWS?

我有一个ReactJS + NodeJS / ExpressJS + Webpack / Babel应用程序,并希望将其部署到AWS上。 我的问题是,我必须单独部署ReactJS和NodeJS / ExpressJS? 还是可以将它们一起部署? 另外,我的栈中提到的任何好的指南都提到了? 环顾四周,但似乎都是特定的,无论是只是NodeJS或ReactJS。 最近发现它https://www.youtube.com/watch?v=WxhFq64FQzA ,但我相信它只覆盖NodeJS / ExpressJS而不是ReactJS。 目前该应用程序在一个项目下,包括所有ReactJS + NodeJS / ExpressJS + Webpack / Babel。