2

Node.js と Typescript を使用してサーバーレス API を作成しています。クライアント側から .xlsx ファイルを送信し、そのファイルを S3 バケットに保存したいと考えています。
npm パッケージbusboyを使ってみました。また、S3 バケットに保存されたファイルを読み取ることができません (破損しているか、完全に書き込まれていません)。ファイルを正しく書き込んでいないようです。
これが私のコードです

    import * as busboy from 'busboy';
    import AWS = require('aws-sdk');
    import { S3 } from 'aws-sdk';

    export const saveExcel: Handler = (event: APIGatewayEvent, context: Context, cb: Callback) => {

          const contentType = event.headers['Content-Type'] || event.headers['content-type'];
          const bb: busboy.Busboy = new busboy({ headers: { 'content-type': contentType } });

          bb.on('file', function (fieldname, file, filename, encoding, mimetype) {
            file
              .on('data', data => {
                const params: S3.PutObjectRequest = {
                  Bucket: 'bucket-name',
                  Key: filename,
                  Body: data
                };
                s3.upload(params, function (err, data) {
                  if (err) {
                    console.log(err);
                  } else {
                    console.log(data);
                  }
                })
              })
              .on('end', () => {
                console.log("done");
              });
          });

          bb.end(event.body);
    }

私は何を間違っていますか?または、他のライブラリを試す必要がありますか?

4

0 に答える 0