使用Google云端存储在Express中的字节范围

我正在使用谷歌云存储托pipe我的媒体。 我一直试图通过我的Express应用程序让Chrome浏览器正确缓冲audio。 然而,我似乎无法弄清楚如何正确设置谷歌云存储stream的字节范围,导致Chrome拒绝。

我使用快速范围来获取所需的范围,并使用Google的官方库与GCS进行交互。

const file = bucket.file(source.path); const stream = file.createReadStream({ 'start': req.range.first, 'end': req.range.last, }); stream.pipe(res); 

这导致Chrome拒绝stream式传输audio(在标签中查看播放器时灰屏),我不明白为什么。 我也得到这个警告: 在这里输入图像描述

你可以在这里testingaudio(这是一个ngrok隧道)

编辑:我结束了使用send-seekable这为我的用例工作。 不过,我不确定它是否会对性能有好处,因为它不会在GCS请求上设置字节范围,这意味着很可能整个资源都被提取(除非我误解了stream的工作原理)