AWS Lambda возвращает файл - PullRequest
       19

AWS Lambda возвращает файл

0 голосов
/ 12 февраля 2019

Я читаю CSV-файл с S3, используя Lambda, и хочу вернуть этот файл вызывающей стороне лямбда-функции.Я не хочу печатать файл через outputstream - я хочу вернуть реальный файл.Есть ли способ сделать это?Я получаю файл S3 следующим образом:

override def handleRequest(inputStream: InputStream,
                             outputStream: OutputStream,
                             context: Context): Unit = {
    ...
    val s3File = s3Client.getObject(bucketName, bucketKey)
}

Как я могу вернуть реальный файл (в отличие от преобразования его в строку и печати через outputStream)?

1 Ответ

0 голосов
/ 13 февраля 2019

Вышесказанное можно выполнить с помощью nodejs aws lambda с express сервером.Вы можете использовать aws при условии пакет

// lambda.js
'use strict'
const awsServerlessExpress = require('aws-serverless-express')
const app = require('./app')
const server = awsServerlessExpress.createServer(app)

exports.handler = (event, context) => { awsServerlessExpress.proxy(server, event, context) }


// app.js
// refer the examples for complete code
// https://github.com/awslabs/aws-serverless-express/blob/master/examples/basic-starter/app.js
...
router.get('/download', (req, res) => {
  s3.getObject({Bucket: myBucket, Key: myFile},function(err,data){

    if (err) {
      // report error and return the server error
      return res.status(500).send("Error!");
    }

    // set the http Headers
    res.set("Content-Length",data.ContentLength)
       .set("Content-Type",data.ContentType);

    // send the data
    res.send(data.Body);

  });

});
...

PS: я не проверял вышеуказанный код.

...