Tag: amazon web services

允许用户将内容上传到s3

我有一个在BUCKET_REGION区域名为BUCKET的S3存储桶。 我试图让我的网站和移动应用程序的用户上传图像文件到这些桶,只要他们满足一定的限制基于Content-Type和Content-Length (即,我想只允许jpegs小于3mbs是上传)。 一旦上传,文件应公开访问。 基于对AWS文档进行的相当广泛的挖掘,我假定在我的前端应用程序中该过程应该看起来像这样: const a = await axios.post('my-api.com/get_s3_id'); const b = await axios.put(`https://{BUCKET}.amazonaws.com/{a.id}`, { // ?? headersForAuth: a.headersFromAuth, file: myFileFromSomewhere // ie HTML5 File() object }); // now can do things like <img src={`https://{BUCKET}.amazonaws.com/{a.id}`} /> // UNLESS the file is over 3mb or not an image/jpeg, in which case I want it to […]

如何使用ReactJS / NodeJS一起部署到Amazon Web Services(AWS)上?

我目前在一个项目下有ReactJS + NodeJS / ExpressJS + Webpack到EC2,amazon web services(AWS),并希望在一个项目中一次部署它。 有什么build议如何去做呢? 完成研究,我只看到了关于如何部署一个教程的教程,无论是ReactJS还是仅仅是NodeJS。 任何见解或潜在客户将不胜感激。 将接受/ upvote答案。 先谢谢你

redis getaddrinfo ENOTFOUND – node.js,redis连接

嗨即时尝试连接到redis从node.js这是成功的,现在我托pipe我的node.js服务器应用程序上的亚马逊ec2实例和redis上的亚马逊弹性caching实例的连接到redis是成功的,但一旦我得到下面提到的错误。 var pub = redis.createClient(6379,'quizredis.qnsdtp.0001.apse1.cache.amazonaws.com'); events.js:72 throw er; // Unhandled 'error' event ^ Error: Redis connection to quizredis.qnsdtp.0001.apse1.cache.amazonaws.com:6379 failed – getaddrinfo ENOTFOUND at RedisClient.on_error (/home/ec2-user/roomChat-7/node_modules/redis/index.js:196:24) at Socket.<anonymous> (/home/ec2-user/roomChat-7/node_modules/redis/index.js:106:14) at Socket.EventEmitter.emit (events.js:95:17) at net.js:813:16 我使用redis-npm模块;

AWS Lambda图像已损坏

我遇到了AWS Lambda问题,每隔几次上传,我的resize的图像就会被损坏。 我写了一个脚本,从S3中取出,并将其大小调整为另一个存储桶中的3种大小,主要是使用文件stream。 这里是代码: https://github.com/handonam/AWS-Resizer/blob/493ff10c317e7150d1ac040f54065083963a9c67/createThumbnails.js 您可以看到较大的512px放大文件(resize)以及原始(200px) 另一个resize为120px 我的lambda消费看起来大部分完全正常。 它设置在768mb内存和20s超时的同一地区。 这些脚本使用90 / 768mb的小图像(如500px宽)执行大约2秒,或者在更大的图像(如2000px宽)上执行14秒@ 648 / 768mb。 但即使是一个小图像,resize也会影响到我。 如果我放弃文件stream,只是写入缓冲区(就像aws示例一样 ),那么image processing将以缓冲区结束,而lambda将耗尽太多的资源。 任何指导表示赞赏!

ngCordova FileTransfer直接上传到AWS S3 WebKitFormBoundary问题

我正尝试使用ngCordova FileTransfer插件在AWS-S3上使用预先签名的url上载文件。 我成功地将file upload到AWS-S3,但文件的内容包含在内 ——WebKitFormBoundarylCFgJXqqECF1rJ2m Content-Disposition: form-data; name="file"; filename="75cae09191bd92a16c3ff05baeb88b9b.jpg" Content-Type: image/jpeg 由此导致图像文件无法打开。 我如何摆脱我的文件中的这个头。 我有一个想法,如果我把一个二进制数据,而不是forms的数据,它会摆脱这一点,因为我已经在POSTMANtesting它,但无法find任何方式来做cordova文件传输。 $cordovaFileTransfer.upload(s3SignedUrl, imagePathOnPhone, { fileKey: "file", fileName: localFileName, httpMethod: "PUT", mimeType: 'image/jpeg' }) .then(function (result) { console.log(result); }, function (error) { console.log(error); }, function (progress) { console.log(progress); }); 我的桶在法兰克福地区和API v4。 我在服务器上使用nodejs。

AWS Elastic Beanstalk – 如何使用npm和webpack构buildbundle JS

我有一个节点js应用程序部署在elasticbeanstalk。 安装和符号链接节点,npm和webpack。 但是在运行npm run build-prod ,它自己调用脚本webpack –config /var/app/current/webpack.prod.config.js 。 以退出状态-2获取以下错误。 如果我也直接运行webpack命令,也会发生同样的情况。 我正在寻找解决scheme。 [2016-07-26T06:57:36.301Z] INFO [9731] – [Application update app-5c81-160726_122417@24/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_site_web/Command 06_npm_run_build_prod] : Activity execution failed, because: > site-web@1.0.0 build-prod /tmp/deployment/application > webpack –config /var/app/current/webpack.prod.config.js npm ERR! Linux 4.4.14-24.50.amzn1.x86_64 npm ERR! argv "/opt/elasticbeanstalk/node-install/node-v4.4.6-linux-x64/bin/node" "/bin/npm" "run" "build-prod" npm ERR! node v4.4.6 npm ERR! npm v2.15.5 npm ERR! file […]

使用续集ORM连接到node.js上的Amazon RDS Postgres数据库的问题

我目前正在将在Heroku中设置的环境迁移到Amazon Web服务堆栈(RDS PostgreSQL,Elastic Beanstalk)。 尝试通过sequelize.js ORM连接到PostgreSQL时,我遇到了一些问题。 错误信息如下: 未处理的拒绝SequelizeHostNotFoundError:getaddrinfo ENOTFOUND [host]。 我可以通过pgAdmin连接到数据库,所以我知道服务正在工作,并且以下configuration在Heroku上工作: sequelize = new Sequelize(process.env.DATABASE_URI, { dialect: 'postgres', protocol: 'postgres', logging: true, timestamps: false }) DATABASE_URI格式如下: postgres://[db_username]:[db_password]@[hostname]:[port]/[db_name] 任何帮助将不胜感激。 提前致谢!

通过HTTP确认SNS订阅时出现AuthorizationError

我正在写一个简单的SNS客户端,意在自订一个SNS主题,然后监听通知。 我可以成功提交sns.subscribe请求,但是当我从AWS获取SubscriptionConfirmation POST消息并尝试使用sns.confirmSubscription响应sns.confirmSubscription我得到一个AuthorizationError : [AuthorizationError: User: arn:aws:iam::xxx:user/mv-user is not authorized to perform: SNS:ConfirmSubscription on resource: arn:aws:sns:us-east-1:xxx:*] 如果我在服务器的GET查询中使用完全相同的Token和TopicArn,订阅确认工作正常,没有身份validation。 任何想法,为什么它不工作? 我的SNS主题是广泛开放的发布/订阅权限设置为“每个人”。 作为参考,我的代码是这样的: var params = { TopicArn: topicArn, // eg arn:aws:sns:us-east-1:xxx:yyy Token: token // long token extracted from POST body }; sns.confirmSubscription(params, function (err, data) { if (err) { // BOOOM – keep getting here with AuthorizationError […]

什么是当前节点到AWS的生产部署的最佳实践

我正在评估nodejs的一小部分我们的Web应用程序,它似乎是一个很好的select。 我知道这个节点年轻,行进得很快,但似乎终于到了“准备生产”的阶段。 然而,在网上search时,我在生产部署中看到的大部分信息已经过去了一年,并且仍然警告节点如何变得脆弱,并且可能意外出错,然后再重新启动一些解决scheme。 这本身并没有吓倒我,但似乎没有正确的方法来把节点可靠地放在那里。

处理/阻止潜在的恶意请求(AWS,Node.js)

我有一个运行在aws上的服务器,它负责平衡运行node.js服务器的一些ec2实例。 安全组被设置为只有LB可以在HTTP端口上击中它们。 我正在拖拽一些日志文件,并看到一堆(每次50个左右,看起来有点周期性)请求/manager/html – AFAIK这看起来像试图揭露我的应用程序中的漏洞或获得访问数据库某种经理。 我的问题是: 我是被定位的还是这些随机爬虫? 这是一个甚至还没有推出的服务,所以它是绝对晦涩的。 关于这项服务有一些新闻,所以一个人知道我们的域名是可行的,但是这个子域名并没有公布。 有没有共同的惯例不允许这些types的请求打我的实例? 最好是,我可以在我的LB中configuration某种频率或黑名单,而不会有这些types的请求碰到一个实例。 不知道如何检测恶意vs正常stream量。 我应该在我的ec2实例上运行本地代理来避免这种types的事情? 是否有任何现有的node.js解决scheme可以拒绝在应用程序级别的请求? 这是一个坏主意吗? 奖励:如果我要logging这些请求的来源,那么这些信息是否有用? 我应该尝试去stream氓,追捕起源,并发送一些伤害他们的方式? 如果是单一来源的,我应该使用机器杀死原始IP吗? (我意识到这很愚蠢,但可能会启发一些有趣的答案)。 目前这些要求并不影响我,他们得到401或404,而且对其他客户几乎没有影响。 但是,如果这是规模上升,我有什么select?