Articles of amazon web services

aws s3file upload使用aws-sdk nodejs

我试图从用户{angularjs前端}上传文件到aws s3桶,并parsing文件到nodejs api路由,但不断收到错误:“TypeError:无法读取未定义的属性”文件“..我能够从postman(铬扩展)上传文件通过发送文件的请求,但我不知道如何parsing文件从angular度到节点js。 下面是在做什么: // NODEJS代码: router.post('/user/upload', multipartMiddleware, function(req, res){ var file = req.files.file; var body = fs.createReadStream(file.path); var filename = 'post7/media.jpg'; var s3bucket3 = new AWS.S3(); s3bucket3.createBucket({Bucket: 'artistarc-user-post-media'}, function() { var data = {Bucket: 'artistarc-user-post-media', Key: filename, Body: body}; s3bucket3.putObject(data, function(err, data) { if (err) { console.log("Error uploading data: ", err); } else { […]

将node.js应用程序部署到弹性beanstalk(使用快速)

我今天整天都在将应用程序部署到弹性beanstalk中。 我有以下项目结构(单个页面的应用程序构build与反应) dist/ index.html bundle.js package.json app.js 我压缩它,并上传到运行node.js的弹性beanstalk 这里是app.js var express = require('express'); var app = express(); app.use(express.static(__dirname + '/dist')); app.get('/*', function(req, res){ res.sendFile(__dirname + '/dist/index.html'); }); app.listen(8080, function() { console.log('Listening on port: ' + 8080); }); 在当地,这一切都很好,但一些警告警告。

node.js自动调整/负载平衡的任何方法? 与socket.io

我正在尝试部署一个node.js项目,以便它可以使用loadbalancer进行自动缩放。 我尝试了AWS ELB弹性豆茎。 花了很多时间后,ELB不像预期的那样连接socket.io。 从这里我已经search了很多方法来解决这个问题: nginx代理 更改了loadbalancer上的监听器,以允许TCP端口3000(其他端口也取决于论坛/问题,我看着) redis服务器共享不同节点之间的套接字连接。 我无法真正把所有的网站,我试图让这个工作。 但它一直没有奏效。 唯一我可能还没有尝试使用route53 … 所以问题是: 如果有人有一个适当的node.js应用程序与socket.io使用弹性beanstalk(或EC2实例与负载平衡器和自动缩放)工作,有没有办法做到这一点,该方法是什么? 如果有一些链接有一些一步一步的方法,将是可怕的。 提前致谢!

如何在AWS中的NodeJS中编写Mongo Replicas脚本

我有3个服务器都运行Mongo作为副本集,1个主副本和2个副本。 如果一个失败,我的自动比例将杀死实例,并使用用户数据重新启动服务器重新安装软件包。 我怎么能通知主(新的或旧的),实例已经复活,因为它将有一个新的私有IP地址(你不能分配静态私有IP的自动调整/启动configuration) 我似乎无法在Mongoose或Mongo Node Driver的最新版本中find一种方法来告诉主要有一个想要join的新实例。 我可以通过访问Mongo shell并传入来手动执行此操作 rs0:PRIMARY> rs.add("10.23.229.17"); 它将被添加,并且数据将同步。 但是,我怎样才能通过节点驱动程序或Bash脚本rs.add? 更新 我发现这个post非常有用, 我可以使用MongoDb驱动程序从node.js调用rs.initiate()和rs.Add()吗? 基本上, 这是所有数据库命令的列表。 虽然我找不到任何包装好的东西,但使用命令方法很容易: var MongoClient = require('mongodb').MongoClient; MongoClient.connect('mongodb://10.23.223.231', function(err, db) { if (err) { console.log('error', err); } else { var adminDb = db.admin(); //use any command from https://goo.gl/0oh6H5 adminDb.command({ replSetGetConfig: 1 }, function(err, info) { if (!eer) { console.log(info); } […]

AWS S3文件在浏览器上传W / Signed URL时上传超时

我一直试图让这个工作2天。 我可以从我的节点服务器获取带有我的存储桶的凭证和文件信息的签名URL,但是当我尝试使用签名的URL上载文件时,我超时了。 这里是一些代码: var AWS_ACCESS_KEY = process.env.AWS_ACCESS_KEY; var AWS_SECRET_KEY = process.env.AWS_SECRET_KEY ; var S3_BUCKET = process.env.S3_BUCKET; exports.getS3Credentials = function(req, res) { aws.config.update({accessKeyId: AWS_ACCESS_KEY, secretAccessKey: AWS_SECRET_KEY}); var s3 = new aws.S3(); // The date is to help avoid overwriting var s3Key = Date.now() + req.query.file_name; var s3_params = { Bucket: S3_BUCKET, Key: s3Key, Expires: 60, ContentType: […]

如何使用Node.js将文件直接上传到Amazon Cloud Front

我刚刚configuration了Amazon Cloud Front分配,并将其连接到现有的Amazon S3存储桶。 话虽如此,这个桶可容纳10GB到40GB的video文件,我想用CF来使上传过程更快(也是下载,但上传在这种情况下更重要)。 最后,我创build了一个简单的JS脚本来将文件推送到连接到CF的这个存储桶: var AWS_ACCESS_KEY_ID = "111", AWS_SECRET_ACCESS_KEY = "222", S3_BUCKET = "videos.company.com", S3_KEY = "remote_filename.mkv", fs = require('fs'), AWS = require('aws-sdk'); AWS.config.update({accessKeyId: AWS_ACCESS_KEY_ID, secretAccessKey: AWS_SECRET_ACCESS_KEY}); var startDate = new Date().toUTCString(); var fileStream = fs.createReadStream(__dirname + '/test.mkv'); fileStream.on('error', function (err) { if (err) { throw err; } }); fileStream.on('open', function () { […]

AWS上的GD字体path用于.ttf

在常规的AWS EC2实例中是否有可用的path的标准字体? 我需要提供一个.ttf文件的完整path来使用GDgraphics工具的基本function。 AWS不会让我将.ttffile upload到主应用程序文件中。 我需要使用/设置S3存储桶吗? 服务器和GD工具是否能够使用直接path到S3上托pipe的.ttf文件? 任何解决方法? 我会很高兴在这一点上任何.ttf字体文件,将工作的GD。 我不需要任何自定义字体,只是gd工具可以访问的任何字体的path: 或多或less,这里是我创build的节点模块的代码,使用处理的数据制作图像: //forum-sig.js var gd = require('nod-gd') module.exports{ createSig: function(text, name){ var sigimg = gd.createSync(360, 180); var red = sigimg.colorAllocate(255, 0, 0) var white = sigimg.collorAllocate(255,255,255); // set full path to file // example var fontPath = '/full/path/to/font.ttf'; var fontPath = './public/OpenSans-Bold.ttf' //this path works locally […]

使用Connect Multiparty,Jimp和Amazon s3fs节点模块将resize的照片上传到Amazon s3

我目前有以下代码设置从客户端发送到一个快速服务器的文件。 const data = new FormData() data.append('programPhoto', imageFromFileInput, fileName) $.ajax({ url: requestUrl, data: data, cache: false, contentType: false, processData: false, type: 'POST' }) 在服务器上,我使用Connect-Multiparty将req对象上的这个图像文件作为req.files [0] const multiParty = require('connect-multiparty'); const multiPartyMiddleware = multiParty(); app.use(multiPartyMiddleware); 我有一个帮助function,该文件并将其上传到亚马逊S3成功和伟大的工作。 它看起来像这样: const constants = require('../config/constants'); const keys = require('../config/config.js') const fs = require('fs'); const S3FS = require('s3fs'); const Jimp = […]

如何使用KMS将S3encryption到nodejs中?

我有一些问题。 我有几个lambda函数,如果我创build脚本本地化,并运行它,所有的工作,但如果我的代码工作在远程lambda我有错误:访问被拒绝 S3Service.prototype.PutFile = function (bucket, key, body, type, callback) { var s3 = new this.AWS.S3({region: awsConfig.region,"signatureVersion":"v4"}); var params = { Bucket: bucket, Key: key, Body: body, ContentType: type, ACL: 'public-read-write', ServerSideEncryption: 'aws:kms', SSEKMSKeyId: awsConfig.kmsKeyId }; s3.putObject(params, function (err, res) { if (err) { callback(new InternalServerError(err)); } else { callback(null); } }); }; S3Service.prototype.GetFile = […]

Node.js进程在aws实例中被杀死

我们正在尝试将我们的节点js应用程序(AngularJS / NodeJS技术堆栈)部署到生产环境中。 随机地,一些ec2实例随着节点进程的死亡而下降。 但没有应用程序/系统级别的错误消息被logging。 我们无法在本地/ dev / it环境中复制此问题。 有没有人遇到类似的东西? 任何帮助深表感谢。 谢谢!