Согласно официальному документу , при использовании метода BlobServiceClient.fromConnectionString
для подключения блоба Azure строка подключения к учетной записи может использоваться только во время выполнения NODE.JS .
Поэтому я предлагаю нам использовать хранилище BLOB-объектов sas token connect Azure. Например
- Создать токен sas (я использую sdk
crypto-js
для его создания)
import * as CryptoJS from 'crypto-js';
const accountName =environment.accountName;
const key=environment.key;
const start = new Date(new Date().getTime() - (15 * 60 * 1000));
const end = new Date(new Date().getTime() + (30 * 60 * 1000));
const signedpermissions = 'rwdlac';
const signedservice = 'b';
const signedresourcetype = 'sco';
const signedexpiry = end.toISOString().substring(0, end.toISOString().lastIndexOf('.')) + 'Z';
const signedProtocol = 'https';
const signedversion = '2018-03-28';
const StringToSign =
accountName+ '\n' +
signedpermissions + '\n' +
signedservice + '\n' +
signedresourcetype + '\n' +
'\n' +
signedexpiry + '\n' +
'\n' +
signedProtocol + '\n' +
signedversion + '\n';
var str =CryptoJS.HmacSHA256(StringToSign,CryptoJS.enc.Base64.parse(key));
var sig = CryptoJS.enc.Base64.stringify(str);
const sasToken =`sv=${(signedversion)}&ss=${(signedservice)}&srt=${(signedresourcetype)}&sp=${(signedpermissions)}&se=${encodeURIComponent(signedexpiry)}&spr=${(signedProtocol)}&sig=${encodeURIComponent(sig)}`;
Соединение Azure Blob
import {
BlobServiceClient
AnonymousCredential,
newPipeline
} from "@azure/storage-blob";
const pipeline = newPipeline(new AnonymousCredential());
const blobServiceClient =new BlobServiceClient(`https://${accountname}.blob.core.windows.net?${sasToken}`,
pipeline )