我试图将zip上传到S3而不在本地计算机上创建zip。我们可以在S3上直接执行createwritestream吗?目前,我的代码在本地创建一个zip,然后上传到S3,然后从本地计算机删除。我不希望在本地计算机上有任何存储空间
const zipName = `myzipname.zip`;
const zipWriteStream = fs.createWriteStream(zipName);
s3Zip
.setRegisterFormatOptions('zip-encrypted', zipencrypted)
.setFormat('zip-encryptable')
.setArchiverOptions({
zlib: { level: 8 },
encryptionMethod: 'my-password',
password: password
})
.archive(
{ region: 'xxxxxxxxxxxxxxxxxxx', bucket: 'xxxxxxxxxxxxxxxxxxx' },
`test2324234`,
[`test.png`, `sample.jpg`]
)
.pipe(zipWriteStream);
zipWriteStream.on('finish', async function (err) {
const uploadzip = fs.readFileSync(zipName);
const file: FileType = {
buffer: uploadzip,
mimetype: 'application/zip'
} as FileType;
await uploadZipFileOnS3(file, zipName);
fs.unlinkSync(zipName);
});