Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Подписанный общий доступ (SAS) позволяет предоставить ограниченный доступ к контейнерам и объектам BLOB в вашей учетной записи хранения. При создании SAS необходимо указать его ограничения, включая ресурсы службы хранилища Azure, к которым разрешен доступ клиенту, разрешения, предоставленные для доступа к этим ресурсам, а также срок действия SAS.
Каждый SAS подписывается ключом. Подписать SAS можно одним из двух способов:
- С помощью ключа, созданного с помощью учетных данных Microsoft Entra. SAS, подписанный учетными данными Microsoft Entra, — это SAS делегирования пользователей. Клиенту, создающему SAS делегирования пользователей, должна быть назначена роль Azure RBAC, которая включает действие Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. Дополнительные сведения см. в статье "Создание SAS делегирования пользователей".
- С ключом учетной записи хранения. Как SAS службы, так и SAS учетной записи подписываются ключом учетной записи хранилища. Клиент, создающий SAS службы, должен иметь прямой доступ к ключу учетной записи или ему должно быть назначено разрешение Microsoft.Storage/storageAccounts/listkeys/action. Дополнительные сведения см. в статье "Создание SAS службы" или "Создание SAS учетной записи".
Примечание.
Делегированный SAS пользователя обеспечивает более высокую безопасность по сравнению с SAS, который подписан ключом учетной записи хранения. Корпорация Майкрософт рекомендует по возможности использовать SAS делегирования пользователя. Дополнительные сведения см. в статье Предоставление ограниченного доступа к данным с помощью подписанных URL-адресов (SAS).
В этой статье показано, как использовать ключ учетной записи хранения для создания служебного SAS для контейнера или объекта BLOB с клиентской библиотекой хранилища для JavaScript.
Создание служебного SAS для BLOB-контейнера
В нижеприведенном примере кода создается SAS для контейнера. Если указано имя существующей хранимой политики доступа, то эта политика будет связана с SAS. Если сохраненная политика доступа не указана, код создает специальный SAS для контейнера.
SAS для службы подписывается с помощью ключа доступа к учетной записи. Используйте класс StorageSharedKeyCredential для создания учетных данных, которые используются для подписания SAS. После этого вызовите функцию generateBlobSASQueryParameters, указав необходимые параметры для получения строки маркера SAS.
// Create a service SAS for a blob container
function getContainerSasUri(containerClient, sharedKeyCredential, storedPolicyName) {
const sasOptions = {
containerName: containerClient.containerName,
permissions: ContainerSASPermissions.parse("c")
};
if (storedPolicyName == null) {
sasOptions.startsOn = new Date();
sasOptions.expiresOn = new Date(new Date().valueOf() + 3600 * 1000);
} else {
sasOptions.identifier = storedPolicyName;
}
const sasToken = generateBlobSASQueryParameters(sasOptions, sharedKeyCredential).toString();
console.log(`SAS token for blob container is: ${sasToken}`);
return `${containerClient.url}?${sasToken}`;
}
Создание SAS службы для BLOB-объекта
В следующем примере кода создается SAS для объекта BLOB. Если указано имя существующей хранимой политики доступа, то эта политика будет связана с SAS. Если сохраненная политика доступа не указана, код создает специальный SAS для BLOB-объекта.
Чтобы создать SAS службы для BLOB-объекта вызовите функцию generateBlobSASQueryParameters, указав при этом необходимые параметры.
// Create a service SAS for a blob
function getBlobSasUri(containerClient, blobName, sharedKeyCredential, storedPolicyName) {
const sasOptions = {
containerName: containerClient.containerName,
blobName: blobName
};
if (storedPolicyName == null) {
sasOptions.startsOn = new Date();
sasOptions.expiresOn = new Date(new Date().valueOf() + 3600 * 1000);
sasOptions.permissions = BlobSASPermissions.parse("r");
} else {
sasOptions.identifier = storedPolicyName;
}
const sasToken = generateBlobSASQueryParameters(sasOptions, sharedKeyCredential).toString();
console.log(`SAS token for blob is: ${sasToken}`);
return `${containerClient.getBlockBlobClient(blobName).url}?${sasToken}`;
}
Ресурсы для разработки с помощью JavaScript
По приведенным ниже ссылкам предоставляются полезные ресурсы для разработчиков, использующих клиентскую библиотеку службы хранилища Azure для JavaScript
API хранилища BLOB
- Клиентская библиотека Azure Storage Blob для JavaScript
- Исходный код библиотеки
- Пакет (npm)
- Справочная документация по API