gpt4 book ai didi

javascript - 如何从@google-cloud/storage读取文件?

转载 作者:行者123 更新时间:2023-12-02 22:19:33 24 4
gpt4 key购买 nike

我正在从我的存储桶中检索文件。

我收到文件并想要阅读其内容,但我不想将其下载到我的本地项目我只想读取内容,获取数据并用它进行其他操作。

我的代码:

export const fileManager = async () => {
try {
const source = 'upload/';

const options = { prefix: source, delimiter: '/' };

const remoteFile = st.bucket(bName).file('myData.csv');

const readFileData;

remoteFile
.createReadStream()
.on('error', err => {
console.log('error');
})
.on('response', response => {
readFileData = response;
console.log('success');
// Server connected and responded with the specified status and headers.
})
.on('end', () => {
console.log('end');
// The file is fully downloaded.
});

console.log("data", readFileData)

} catch (error) {
console.log('Error Is', error);
}
};

readFileData 未定义。

这可能吗?我找到的每个示例都涉及我下载文件。

最佳答案

createReadStream 是异步的并立即返回。您必须使用回调来确定下载到内存何时完成。现在,您的代码总是会打印“数据未定义”,因为它试图在响应可用之前打印响应。

createReadStream 绝对是正确的方法,但您必须了解 how node streams work以便正确处理结果。链接文档中有一个完整的部分 reading streams ,这就是您想要在这里执行的操作。处理流的方式并非特定于 Cloud Storage - 对于所有 Node 流都是相同的。

这些涉及读取 Node 流的问题的答案可能会对您有所帮助:

关于javascript - 如何从@google-cloud/storage读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59275856/

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