首页 > 解决方案 > 使用 SAS (NODEJS) 从 azure blob 存储创建可共享 URI

问题描述

我正在尝试为 azure blob 存储中的单个文件创建具有共享访问签名的 URI。我想在我的后端创建它并将链接发送到我的角度前端,以便用户可以直接下载文件。

我在这里找到了一个类似的 C# 示例:How to download a file to browser from Azure Blob Storage

但是我很难找到 NodeJS 的正确方法。我查看了https://docs.microsoft.com/de-de/rest/api/storageservices/create-user-delegation-sas但是我不确定如何使用这些信息。

标签: node.jsangularazuredownload

解决方案


这是获取 blob sas url 的示例代码。

var azure = require('azure-storage');
var blobService = azure.createBlobService('storage connection');
// Create a SAS token that expires in an hour
    // Set start time to five minutes ago to avoid clock skew.
    var startDate = new Date();
    startDate.setMinutes(startDate.getMinutes() - 5);
    var expiryDate = new Date(startDate);
    expiryDate.setMinutes(startDate.getMinutes() + 60);

    permissions = azure.BlobUtilities.SharedAccessPermissions.READ;

    var sharedAccessPolicy = {
        AccessPolicy: {
            Permissions: permissions,
            Start: startDate,
            Expiry: expiryDate
        }
    };
    var container='test';
    var blobName='test.txt';
    var sasToken = blobService.generateSharedAccessSignature(container, blobName, sharedAccessPolicy);
    var url=blobService.getUrl(container,blobName,sasToken);
    console.log(url);

在此处输入图像描述


推荐阅读