gpt4 book ai didi

node.js - 如何在nodejs sdk v12中生成带有SAS签名的azure blob url?

转载 作者:行者123 更新时间:2023-12-02 05:51:48 30 4
gpt4 key购买 nike

以前(在旧版 sdk 中,例如 v2),您可以生成 sas url(blob 的签名可共享 url),如下所示:

var azure = require('azure-storage');
var blobService = azure.createBlobService();

var startDate = new Date();
var expiryDate = new Date(startDate);
expiryDate.setMinutes(startDate.getMinutes() + 100);
startDate.setMinutes(startDate.getMinutes() - 100);

var sharedAccessPolicy = {
AccessPolicy: {
Permissions: azure.BlobUtilities.SharedAccessPermissions.READ,
Start: startDate,
Expiry: expiryDate
}
};

var token = blobService.generateSharedAccessSignature(containerName, blobName, sharedAccessPolicy);
var sasUrl = blobService.getUrl(containerName, blobName, token);

我想知道如何在 sdk v12 中生成该 url?我在 v12 中找不到 Sas URL 的任何文档。

BlobUtilities 和 getUrl() 方法在 v12 中也不可用(在 v12 中,每个模块都有单独的包,在我的例子中,我使用 require("@azure/storage-blob");)

谢谢。

最佳答案

关于该问题,请引用以下代码

var storage = require("@azure/storage-blob")
const accountname ="blobstorage0516";
const key = "";
const cerds = new storage.StorageSharedKeyCredential(accountname,key);
const blobServiceClient = new storage.BlobServiceClient(`https://${accountname}.blob.core.windows.net`,cerds);
const containerName="test";
const client =blobServiceClient.getContainerClient(containerName)
const blobName="help.txt";
const blobClient = client.getBlobClient(blobName);

const blobSAS = storage.generateBlobSASQueryParameters({
containerName,
blobName,
permissions: storage.BlobSASPermissions.parse("racwd"),
startsOn: new Date(),
expiresOn: new Date(new Date().valueOf() + 86400)
},
cerds
).toString();

const sasUrl= blobClient.url+"?"+blobSAS;
console.log(sasUrl);

enter image description here

关于node.js - 如何在nodejs sdk v12中生成带有SAS签名的azure blob url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61530356/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com