Node.js 使用 azure 读取 blob 并创建 SAS 令牌
Node.js reading a blob with azure and creating a SAS token
所以我目前正在编写一些代码来获取一个容器,然后选择一个 blob 并制作一个 SAS 令牌。目前所有这些都有效,但是当我尝试打开 link.
时出现错误
报错是这样的
AuthenticationFailed
服务器无法验证请求。确保 Authorization header 的值格式正确,包括签名。 RequestId:somethingsomething
此资源级别不允许指定的签名资源
const test = () => {
const keyCredit = new StorageSharedKeyCredential('storageaccount', 'key')
const sasOptions = {
containerName: 'compliance',
blobName: 'swo_compliance.csv',
};
sasOptions.expiresOn = new Date(new Date().valueOf() + 3600 * 1000);
sasOptions.permissions = BlobSASPermissions.parse("r");
const sasToken = generateBlobSASQueryParameters(sasOptions, keyCredit).toString();
console.log(`SAS token for blob container is: url/?${sasToken}`);
return `url/?${sasToken}`;
}
我尝试在我的系统中重现能够使用 sas 令牌下载 blob 的场景
当您在代码中返回 return url/?${sasToken};
时删除 “/”
只需给出
return url?${sasToken};
示例 URL:https://StorageName.blob.core.windows.net/test/test.txt?SASToken
我尝试在我的系统中下载 blob
所以我目前正在编写一些代码来获取一个容器,然后选择一个 blob 并制作一个 SAS 令牌。目前所有这些都有效,但是当我尝试打开 link.
时出现错误报错是这样的
AuthenticationFailed
服务器无法验证请求。确保 Authorization header 的值格式正确,包括签名。 RequestId:somethingsomething
此资源级别不允许指定的签名资源
const test = () => {
const keyCredit = new StorageSharedKeyCredential('storageaccount', 'key')
const sasOptions = {
containerName: 'compliance',
blobName: 'swo_compliance.csv',
};
sasOptions.expiresOn = new Date(new Date().valueOf() + 3600 * 1000);
sasOptions.permissions = BlobSASPermissions.parse("r");
const sasToken = generateBlobSASQueryParameters(sasOptions, keyCredit).toString();
console.log(`SAS token for blob container is: url/?${sasToken}`);
return `url/?${sasToken}`;
}
我尝试在我的系统中重现能够使用 sas 令牌下载 blob 的场景
当您在代码中返回 return url/?${sasToken};
时删除 “/”
只需给出
return url?${sasToken};
示例 URL:https://StorageName.blob.core.windows.net/test/test.txt?SASToken
我尝试在我的系统中下载 blob