gpt4 book ai didi

javascript - 使用流将文件保存到 azure 存储不起作用

转载 作者:行者123 更新时间:2023-12-03 02:27:29 27 4
gpt4 key购买 nike

我想使用 azure-storage package 将文件从流保存到流容器中

这是我获取流的方法

let request = rp(options).on("response", async (response) => {
if (response.statusCode === 200) {
await insertFile("TTSOutput.wav", request, request.length);
}

以下是我将其保存到 Azure 中的方法

var insertFile = async function (blobName, stream) {
try {
blobService = await azure.createBlobService(connStr);

blobService.createContainerIfNotExists(
containerName,
{
publicAccessLevel: "blob",
},
(err, result, response) => {
if (!err) {
let resultstream = blobService.createWriteStreamToBlockBlob(
containerName,
blobName
);
stream.pipe(resultstream);
}
}
);
}

实际上只创建了容器,但没有上传文件

最佳答案

尝试使用以下代码从 Azure TTS API 上传 .wav 文件:

let request = rp(options)
.on('response', (response) => {
if (response.statusCode === 200) {
tempFilePath = 'd:/temp.wav'
request.pipe(fs.createWriteStream(tempFilePath));
insertFile('TTSOutput.wav',fs.createReadStream(tempFilePath)).then(function(){
fs.unlinkSync(tempFilePath)
console.log("uploaded")})
}
});

insertFile函数:

const {
BlobServiceClient
} = require('@azure/storage-blob');

var conn_str = '<storage account connection string>'
var container = '<your container name>'

async function insertFile(blobName, stream) {

BlobServiceClient.fromConnectionString(conn_str).getContainerClient(container).getBlockBlobClient(blobName).uploadStream(stream)

}

结果:

enter image description here enter image description here

如果您还有其他问题,请告诉我。

关于javascript - 使用流将文件保存到 azure 存储不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66392850/

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