在nodejs中流式传输zip文件

问题描述 投票:0回答:1

我正在寻找一个流式传输我的zip文件的解决方案,以便将其发送到azure blob-storage。目前这就是我所拥有的

async _uploadStreamToBlob(zipFile, fileName) {
    const blobService = await this.__self.blobStorage.createBlobService(this.__self.blobStorageConnectionString);
    const containerName = this.__self.blobContainerName;

    const sourceFilePath = `${path.resolve(zipFile)}`;
    const streamSource = fs.createReadStream(sourceFilePath);
    return new Promise((resolve, reject) => {
        streamSource.pipe(blobService.createWriteStreamToBlockBlob(containerName, fileName, error => {
            if (error) {
                reject(error);
            } else {
                resolve({ message: `Upload of '${fileName}' complete` });
            }
        }));
    });
};

这显然不起作用,因为我已经测试过,因为fileStream将零字节输入管道,导致成功上传0字节zipFile到blob存储。如何将zipFile流式传输到azureWriteStream?或者如何从zipFile中删除字节(保留内容)?如果还有其他方法可以实现这一点,我全都听见了。谢谢

node.js zip azure-storage filestream
1个回答
0
投票

直接使用createBlockBlobFromLocalFile:

blobService.createBlockBlobFromLocalFile(containerName, fileName, sourceFilePath, (err) => {
    // Handle err
});
© www.soinside.com 2019 - 2024. All rights reserved.