Tag: amazon s3

如何调整图像大小并使用nodejs中的multer上传到s3并使用easy-image npm模块?

我已经使用下面的代码在nodejs中使用简单的图像npm模块进行图像大小调整。 var easyimg = require('easyimage'); easyimg.rescrop({ src:'1.jpg', dst:'/var/www/html/bangalore.jpg', width:100, height:100 }),function(image,err){ // console.log('Resized and cropped: ' + image.width + ' x ' + image.height); if(image){ console.log(image); } else{ console.log(err); } } 我有成功的输出。 然后,我已经使用下面的代码与multer上传我的图像到s3。 var storage = multerS3({ s3: s3, bucket: 'my_bucket_name', key: function (req, file, cb) { console.log(file); file_name = file.originalname; var newFileName = Date.now() […]

使用API​​网关和Lamda从S3服务PDF文件

我有nodejs lamda函数读取从s3桶s3文件,并由api网关使用Lamda代理服务 function readS3(bucket,objectName){ return new Promise((resolve, reject) => { AWS.S3.getObject({ Bucket: bucket, Key: objectName }, function (err, data) { if (err) { console.log('cannot read s3'); console.log(err, err.stack); reject(err); } else { resolve(data); } }); }); } readS3(bucket,objName).then((data)=>{ let response = { statusCode:200, headers: { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Credentials": true, "Content-Type": 'application/pdf', "Content-Disposition": 'filename=test.pdf' }, body: […]

错误:使用AWS Lambda上的gm降低图片质量时,stream会产生空缓冲区

我已阅读所有其他主题,并尝试了一些答案,但我似乎无法弄清楚为什么我得到这个错误。 我的代码在S3存储桶中获取上传的图片,降低质量并将其放入第二个存储桶中。 干净利落。 随着中小型图像一切正常,但如果我上传的东西超过2 MB(或多或less)我得到的错误标题。 我的Lambda函数有128MB和3分钟的超时时间; 这里是代码: const gm = require('gm').subClass({imageMagick: true}); const AWS = require('aws-sdk'); const async = require('async'); const S3 = new AWS.S3(); exports.handler = (event, context, callback) => { var srcBucket = event.Records[0].s3.bucket.name; var srcKey = event.Records[0].s3.object.key; var dstBucket = "destinationbucket"; var dstKey = "resized-" + srcKey; // Infer the image type. […]

Amazon S3 – 编辑上传的图像

概述:我正在使用Amazon S3来让用户上传图片。 我一直在编辑路线,以便用户可以在上传后编辑他们的图像。 我正在通过一个PUT路线来做这件事。 这是我目前的解决scheme。 它可以覆盖当前的图像。 问题:如果用户select零新图像,则会覆盖具有空白文件path的旧图像。 也就是编辑后没有图像显示。 如果用户只尝试编辑一个图像,同样的事情发生,一个图像将更新,但其他图像将被空白文件path覆盖,所以没有图像显示。 问题:让用户使用Amazon S3和Multer-S3编辑图像的正确方法是什么? 谢谢你的帮助! 🙂 app.put("/:id", function(req, res){ upload(req,res,function(err) { if(err) { console.log(err); res.redirect('/') } var filepath = undefined; var filepath2 = undefined; var filepath3 = undefined; if(req.files[0]) { filepath = req.files[0].key; } if(req.files[1]) { filepath2 = req.files[1].key; } if(req.files[2]) { filepath3 = req.files[2].key; } var image […]

使用请求从节点stream上传到S3的问题

使用Node.js ,我试图上传一个大的文件(700MB〜1GB),作为响应POST请求(使用请求 ),到我的S3桶。 使用aws-sdk for Javascript iv'e尝试了两种方法,但每个都有一个不同的问题: 方法 1 – 尝试在response事件上调用s3.upload()函数: const sendRequest = (data) => { try { return new Promise((resolve, reject) => { AWS.config.loadFromPath('./config/awsConfig.json'); let s3 = new AWS.S3({ params:{ Bucket:'myBucket', Key:'path/to/file.csv' } }); request({ method: 'POST', uri: 'https://www.example.com/apiEndpoint', headers: { host: 'example.com', 'content-type': 'application/json' }, body: JSON.stringify(data) }).on('response', (response) => { // […]

如何使用nodejs将图像上传到s3时设置过期date

我想上传一个图片/video,并在nodejs sdk中设置到期date。 任何一个可以让我知道如何设置到期date,而上传图像到S3?

在lambda中创buildpkg文件

我对AWS S3和Lambda相当陌生。 使用带有Lambda的nodejs 4.3可以从S3存储桶中提取多个文件并将它们编译成单个osx扁平包(.pkg)?

将文件从公共S3存储桶复制到专用S3存储桶的最佳方法

我需要使用nodeJS AWS SDK从AWS S3存储桶上公开可访问的资源中复制私有存储桶configuration(例如,secretkey,accesskey等)。 我的想法是使用http.get或request获取公共对象的内容,然后简单地使用常规的S3.upload()函数,但也许有一个更有效的方法。 谢谢

从AWS Lambda Node.JSstream式传输到S3

我的目标是创build一个大的gzip文本文件,并将其放入S3。 文件内容由我从另一个源代码循环读取的块组成。 由于这个文件的大小,我不能保存所有的数据在内存中,所以我需要以某种方式直接stream到S3和ZIP在同一时间。 我知道如何使用Node.JS中的常规fs执行这个技巧,但是我很困惑是否可以使用AWS Lambda中的S3来完成相同的技巧? 我知道s3.putObject 可以使用 streamObject ,但是在我看来,当我执行putObject操作时,这个stream应该已经完成​​,什么会导致超出允许的内存。

将http响应直接发送到S3存储桶

我试图通过http下载一个pdf文件并将其上传到S3 Bucket上。 HTTP响应内容types是application/pdf ,我试图简单地保存/上传在S3上的文件。 http.get(options, function (resp) { resp.setEncoding('binary'); var data = ""; resp.on('data', function (chunk) { data += chunk; }); resp.on("end", function () { var fileName = documentId + "___test.pdf"; awsS3.uploadBinaryData(fileName, data, function (err, data) { return res.json(new CustomResponse('done')); }) }); 而uploadBinaryData方法如下所示: var params = { Bucket: config.get("S3.BUCKET_NAME"), Key: fileName, Body: data, ACL: "public-read", […]