Я использую библиотеку @azure/storage-blob в angular. Я получаю BlobServiceClient, затем вызываю метод getContainerClient и получаю следующую ошибку:
«Не поймано (в обещании): TypeError: Не удалось создать URL-адрес: неверный URL-адрес. Ошибка типа: не удалось создать «URL»: неверный URL-адрес».
var client = new BlobServiceClient(`https://mystorage.blob.core.windows.net${sas}`);
let containers = client.listContainers();
const containerClient = client.getContainerClient('containerName');
Я искал, но не могу понять, делаю ли я что-то не так..
Итак, когда я запускаю метод listContainer(), он запускается, но когда я пытаюсь перебрать список, он выдает ошибку: «Не удалось выполнить «открыть» в «XMLHttpRequest»: неверный URL-адрес».
Можете ли вы рассказать, как выглядит ваш URL-адрес SAS? Оно должно начинаться с «?».
Он не начинается с ?. вот начало: sp=r&st=2023-10-05T18:17:12Z&se=2023-10-13T02:17:12Z&spr=https&sv=
Попробуйте вставить ? между базовым URL-адресом и токеном SAS. Что-то вроде «https://mystorage.blob.core.windows.net?${sas}».
Я преодолел свою ошибку. Оказывается, есть SAS, который можно создать на конкретном контейнере, а также SAS на уровне учетной записи хранения. Я создавал SAS в контейнере и получил ошибку. После того как я создал SAS в учетной записи хранения и использовал ключ, начинающийся с ?, я больше не получаю эту ошибку.
Спасибо за обновление. Вам все еще нужна помощь по этому вопросу или у вас все в порядке?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Для выполнения операции GetContainerClient вам понадобится служба SAS. Его можно создать на портале учетной записи хранения Azure, как показано ниже:
Пример кода для вызова GetContainerClient с использованием токена SAS находится здесь:
const { BlobServiceClient } = require("@azure/storage-blob");
const account = "<account name>";
const sas = "<service Shared Access Signature Token>";
const containerName = "<container name>";
const blobName = "<blob name>";
const blobServiceClient = new BlobServiceClient(`https://${account}.blob.core.windows.net${sas}`);
async function main() {
const containerClient = blobServiceClient.getContainerClient(containerName);
const blobClient = containerClient.getBlobClient(blobName);
...
...
}
Если вы хотите создать токен службы SAS для контейнера хранилища BLOB-объектов Azure с помощью JavaScript, вы можете обратиться к этому примеру кода. Надеюсь это поможет.
Можете ли вы перечислить контейнеры?