Ошибка библиотеки Javascript службы хранилища Azure getcontainerclient

Я использую библиотеку @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');

Я искал, но не могу понять, делаю ли я что-то не так..

Можете ли вы перечислить контейнеры?

Gaurav Mantri 05.10.2023 21:23

Итак, когда я запускаю метод listContainer(), он запускается, но когда я пытаюсь перебрать список, он выдает ошибку: «Не удалось выполнить «открыть» в «XMLHttpRequest»: неверный URL-адрес».

elesh.j 05.10.2023 23:09

Можете ли вы рассказать, как выглядит ваш URL-адрес SAS? Оно должно начинаться с «?».

Gaurav Mantri 05.10.2023 23:21

Он не начинается с ?. вот начало: sp=r&st=2023-10-05T18:17:12Z&se=2023-10-13T02:17:12Z&spr=htt‌​ps&sv=

elesh.j 05.10.2023 23:32

Попробуйте вставить ? между базовым URL-адресом и токеном SAS. Что-то вроде «https://mystorage.blob.core.windows.net?${sas}».

Gaurav Mantri 05.10.2023 23:56

Я преодолел свою ошибку. Оказывается, есть SAS, который можно создать на конкретном контейнере, а также SAS на уровне учетной записи хранения. Я создавал SAS в контейнере и получил ошибку. После того как я создал SAS в учетной записи хранения и использовал ключ, начинающийся с ?, я больше не получаю эту ошибку.

elesh.j 05.10.2023 23:58

Спасибо за обновление. Вам все еще нужна помощь по этому вопросу или у вас все в порядке?

NaveenBaliga 06.10.2023 04:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для выполнения операции 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, вы можете обратиться к этому примеру кода. Надеюсь это поможет.

Другие вопросы по теме