我将音频文件上传到我的azure blob,我想知道是否可以仅下载我想要的音频部分吗?
顺便说一下,我正在使用nodeJs
谢谢!
答案 0 :(得分:1)
我将音频文件上传到我的azure blob,我想知道是否 可以只下载我想要的音频部分吗?
是的,当然可以下载Blob的一部分。 Azure Blob支持读取一定范围的字节。例如,假设您只想从文件下载前1KB数据。这是您下载数据的方式:
import azure from 'azure-storage';
const ms = require('memory-streams');
const chunkStart = 0;
const chunkEnd = 1023;
const connectionString = 'your-azure-storage-connection-string';
const blobService = azure.createBlobService(connectionString);
const writableStream = new ms.WritableStream({
highWaterMark: (chunk.end - chunk.start) * 2,
writableHighWaterMark: (chunk.end - chunk.start) * 2,
});
const requestOptions = {
rangeStart: chunkStart,
rangeEnd: chunkEnd
};
blobService.getBlobToStream('container-name', 'blob-name', writableStream, requestOptions, (error, result, response) => {
if (error) {
console.log('Error occurred while downloading chunk!');
} else {
const dataBuffer = writableStream.toBuffer();
console.log('Blob chunk downloaded!');
}
});
考虑到您提到要存储音频文件,请注意,您不能指示Azure存储下载音频的“ x”持续时间(例如,下载音频的前30秒),因为Azure存储会将所有Blob视为字节集合,不知道该文件是音频文件还是其他文件。