NodeJS-将文件从S3读取到Lambda中的/ tmp文件夹

时间:2018-10-25 13:54:28

标签: node.js amazon-s3 aws-lambda copy fs

我需要将*.dbf文件从S3存储桶移至Lambda的/tmp文件夹中以进行进一步处理。到目前为止,文件正在移动,但是文件内容已损坏,我在做什么错了?

exports.getS3Object = ( bucket, key ) => {

  return S3Client.getObject( {

    Bucket              : bucket,
    Key                 : key
  } )
  .promise( )
  .then( file => {

    console.log( 'File loading ', key );
    if ( ! fs.existsSync( '/tmp' ) ) {

      fs.mkdirSync( '/tmp' );
    }
    fs.writeFileSync( '/tmp/' + key, file.Body.toString( 'utf8' ), ( error ) => {

      throw error;  
    } ); 
    return '/tmp/' + key;
  } )
  .catch( error => {

    // file not found
    return error;
  } );
};

1 个答案:

答案 0 :(得分:-1)

您的dbf文件可能未编码为utf8字符串。调用base64时尝试binaryfile.Body.toString编码。