gpt4 book ai didi

javascript - Box Node SDK 未使用 readStream 拉取文件

转载 作者:行者123 更新时间:2023-12-03 00:21:32 25 4
gpt4 key购买 nike

我目前有一个由两部分组成的系统。该系统的目标是根据现有的 Box 数据评估传入数据,然后从 Box 下载 zip 文件。

第 1 部分 - 我有一个异步函数,它调用 box sdk 并获取文件数据。然后,它根据预先存在的格式评估该名称并返回一个对象。

第 2 部分 - 利用从第 1 部分收到的键/值来创建带有现有文件夹的读取流。

我遇到的问题是第 2 部分永远不会被触发。我查看事件监听器,或尝试将读取的数据通过管道传输到写入流,但没有任何反应。

我认为我的问题是我没有正确实例化我的异步函数。

我知道有些东西确实有效: 我知道 BoxClient 工作正常。我能够访问 Box SDK 并提取元数据。我还可以将 zip 文件上传到盒子。上传发生在一个单独的函数中,不包含在本期中。

我尝试拉取下载 URL,然后使用异步请求来拉取数据。我从未从请求中获得任何下载数据。与我尝试使用 Box sdk 中的读取流时相同。

如上所述,这是第 1 部分。

async function fileLookUp(id, userName, orderNumber, planId) {
const boxClient = auth();
const fileIdObj = {
fileID: id,
};
const expectedName = `plan.${userName}.${orderNumber}.${planId}.zip`;

// Get all box info on given file
const foundFile = await boxClient.files.get(fileIdObj.fileID);

const fileName = foundFile.name;

if (fileName !== expectedName) throw Error(messages.fileSearch);

fileIdObj.fileName = fileName;

return fileIdObj;
}

第 2 部分

async function downloadZip(obj) {
const boxClient = auth();
await boxClient.files.getReadStream(obj.fileID, null, (err, stream) => {
if (err) throw Error(err);
stream.on('data', data => console.log(data));
});
}

我正在开玩笑地调用函数。

test('should successfully be called', async () => {
// 'private/plans/'
const temp = await fileLookUp('329362776631', 'testsurgeon2', '12-15-09-0004', 'plan1');
await downloadZip(temp);
}, 30000);

我希望我应该从读取流中获取数据。

最佳答案

问题在于测试在数据流解决之前就已解决。为了解决这个问题,并获得在检索数据后进行管道传输的能力,我 promise 了整个函数,以便测试将等待 promise 完成。

关于javascript - Box Node SDK 未使用 readStream 拉取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54295104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com