我试图在内存中创建一个zip文件(使用TypeScript),然后将其存储在AWS S3桶中。输入为纯文本CSV字符串(data)。
我不知道我做错了什么,因为在s3中创建的zip文件在我下载文件时是不可读的。
代码:
const zip = new AdmZip();
zip.addFile('tmp.txt', Buffer.from(data, 'utf-8'));
const zipData = await zip.toBufferPromise();
try {
const now = dayjs().format('YYYYMMDDTHHmmss');
const fileName = `Feedback-${now}`;
await this._storageService.saveFile(zipData.toString('binary'), 'sprintFeedback', fileName);
解决方法简单易行:只需将下面一行的结果发送到s3存储桶,它就会被存储为一个合适的zip文件;
const zipData: Buffer = await zip.toBufferPromise();
const command = new PutObjectCommand({
Bucket: bucketName,
Body: zipData,
Key: fileName,
});
await this._s3Client.send(command);