0

我有工作代码使用来自 getObject 的 createReadStream 的可读流。我想使用 selectObjectContent 而不是 getObject,这样我就可以过滤使用 SQL 表达式返回的 json 文件,以节省文件传输大小和时间。

工作 getObject 代码:

  let objectReadableStream = s3.getObject({
    Bucket: event.bucket,
    Key: event.sourceKey,
  }).createReadStream()

将其移交给 s3.upload 以在其他地方制作副本:

  let uploadResult = await s3.upload({
    Bucket: event.bucket,
    Key: event.destinationKey,
    Body: objectReadableStream
  }).promise();

我希望将其转换为可读流,我可以将其传递给 s3.upload 的主体,就像我对上面的 getObject 所做的那样。

  s3.selectObjectContent({
    Bucket: event.bucket,
    Key: event.sourceKey,
    Expression: event.expression, 
    ExpressionType: 'SQL', 
    InputSerialization: { 
      JSON: {
        Type: 'DOCUMENT'
      }
    },
    OutputSerialization: {
      JSON: {
        RecordDelimiter: ','
      }
    }
  })
4

0 回答 0