在内存中创建一个 zip 文件,然后存储到 AWS S3
Create a zip file in memory and then store to AWS S3
我正在尝试在内存中创建一个 zip 文件(使用 TypeScript),然后将其存储在 AWS S3 存储桶中。输入是纯文本 CSV 字符串(数据)。
我不确定我做错了什么,因为在 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);
我正在尝试在内存中创建一个 zip 文件(使用 TypeScript),然后将其存储在 AWS S3 存储桶中。输入是纯文本 CSV 字符串(数据)。
我不确定我做错了什么,因为在 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);