【问题标题】:how download image and put S3 in lambda nodejs如何下载图像并将 S3 放入 lambda nodejs
【发布时间】:2017-03-23 00:50:26
【问题描述】:
'use strict';
var https = require('http');
var aws = require('aws-sdk');
var fs = require('fs');

aws.config.update({
    accessKeyId: 'id',
    secretAccessKey: 'key',
    region: 'ap-northeast-1'
});

var s3bucket = new aws.S3();
var bucketName = "bukcetName"

exports.handler = (event, context, callback) => {    

https.get("URL.jpg", function(res, body){

    body = new Buffer(res.body, 'binary');
    var params = {
        Bucket:bucketName,
        Key: "testLambda",
        Body: body,
        ACL: 'public-read'
    };
    s3bucket.upload(params, function(err, data) {
            context.done(null, 'Finished UploadObjectOnS3');

    });
});

};

APIGateway ---> lambda

我想从 lambda 中的 URL 下载 并且该内容放入了 S3。

我无法从 URL 获取二进制数据 但我可以将任何数据放入 S3 中的任何目录 谢谢帮助。

【问题讨论】:

    标签: node.js amazon-s3 lambda


    【解决方案1】:

    我已对您的代码进行了一些更改,以使其更好地工作。
    - 你不需要'fs'。
    - 正确的方法是“putObject”而不是“上传”。
    谢谢!

    'use strict';
    var AWS = require('aws-sdk');
    var s3 = new AWS.S3();
    var http = require('http');
    
    aws.config.update({
      accessKeyId: 'id',
      secretAccessKey: 'key',
      region: 'ap-northeast-1'
    });
    
    var s3bucket = new AWS.S3();
    var bucketName = "bukcetName";
    
    exports.handler = (event, context, callback) => {    
    
      http.get("URL.jpg", function(res){
        var imageData = ''; 
    
        res.setEncoding('binary');
    
        res.on('data', function(chunk){
          imageData += chunk;
        });
    
        res.on('end', function(){
    
          var params = {
            Bucket: bucketName,
            Key: "testLambda",
            Body: new Buffer(imageData, 'binary'),
            ACL: 'public-read'
          };    
    
          s3.putObject(params, function(err, data) {
            if (err) console.log(err, err.stack);
            else     console.log(data);
            context.done(null, 'Finished UploadObjectOnS3');
          });       
    
        });
    
      });
    
    };
    

    【讨论】:

      猜你喜欢
      • 2021-01-19
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多