最近对接微软云上传功能,经过在百度和csdn上找解决方法,发现资源很少,所以无奈去翻官网文档。走了一些弯路,整理一些上传逻辑代码,希望对有同样需求的人有所帮助。后面有最终使用方案的官网文档。
本文只讲通过签名SAS,完成前端Blob文件上传。
const { BlobServiceClient } = require('@azure/storage-blob');
const SAS = ``; //签名-后端接口返回
const blobSasUrl = `https://kulzer.blob.core.windows.net?${sas}`;
// 创建一个 BlobServiceClient
const blobServiceClient = new BlobServiceClient(blobSasUrl);
// 后端返回或者约定的一个容器名 上传后的文件将会传到这个容器内
const containerName = "containerName";
// 从 BlobServiceClient 获取容器客户端
const containerClient = blobServiceClient.getContainerClient(containerName);
// 上传方法
const uploadFiles = async (file, callback) => {
const blockBlobClient = containerClient.getBlockBlobClient(`{文件夹名}/${file.name}`);
blockBlobClient.uploadBrowserData(file).then(res => {
// 上传成功
callback({status: 1})
}).catch(err => {
// 上传失败
callback({status: 0})
})
}
文档地址:https://learn.microsoft.com/zh-cn/azure/storage/blobs/quickstart-blobs-javascript-browser