У меня возникли небольшие проблемы с поиском информации о точно , как использовать SAS из Node в документации , поэтому я подумал, что было бы полезно опубликовать мой пример кода здесь для справки.,
Я выполнил следующие шаги:
- Создание новой учетной записи хранения (с помощью портала Azure).Я буду использовать отдельную учетную запись хранения для каждого клиента, как предложено @ TomSun.
- Создана новая таблица внутри учетной записи.Я загрузил и использовал Microsoft Azure Storage Explorer, чтобы сделать это и остальные шаги.Обозреватель хранилища, доступный на портале, еще не работает с таблицами - только двоичные объекты, файлы и очереди.
- Создана политика доступа к таблице.(Щелкните правой кнопкой мыши по таблице, выберите «Управление политиками доступа ...»)
- Создание подписи общего доступа.(Щелкните правой кнопкой мыши таблицу, выберите «Получить подпись общего доступа ...», выберите созданную выше политику.
- Скопируйте полученный URL-адрес и строку запроса для ссылки в приведенном ниже коде. Обратите внимание, что URL-адрес содержит запросстрока.
- В новой папке на моем компьютере запустите
npm init
, чтобы настроить проект узла. npm install azure-storage
, чтобы загрузить библиотеку. - Создать файлвызывается
index.js
с содержанием, показанным ниже. node index.js
для запуска кода.
Обратите внимание, что в приведенном ниже коде я изменил имена своей учетной записи, таблица, sasToken и т. д. Не ожидайте, что он будет работать только с копированием и вставкой!
const azure = require('azure-storage');
const sasUri = 'https://myaccount.table.core.windows.net/mytable';
const sasQuery = 'sv=2018-03-28&si=saspolicy&tn=mytable&sig=1%2FgfWdreRKfWpRjhRy3E8MiHDIxH35SPZY5ssU8lKw%3D';
const tableService = new azure.TableService(null,null,sasUri,sasQuery);
const item = {
PartitionKey: {'_':'keyvalue'},
RowKey: {'_':'2018-10-10T03:17:21Z'},
Col1: {'_':23},
Col2: {'_':423}
};
tableService.insertEntity('mytable',item,function(err,result,response){
if (err) {
console.error(err);
} else {
console.log('success');
console.log('result = '+JSON.stringify(result,null,' '));
console.log('response = '+JSON.stringify(response,null,' '));
}
});
Моя следующая задача - найти документацию, описывающую ключи '_'
, используемые в сущности для вставки.похоже, что для значения используется подчеркивание, а для типов можно использовать символ $, хотя типы угадываются, если не указан. Для создания этих объектов при необходимости есть функция entityGenerator .