簡體   English   中英

無法使用 Azure Function Blob 觸發器獲取 Blob SAS URL

[英]Unable to get Blob SAS URL using Azure Function Blob trigger

我正在使用 Blob 觸發器 Azure function 在任何文件上傳到容器時獲取 Blob 文件數據。

 public static void Run(Stream myBlob,string BlobTrigger,System.Uri uri, string name, ILogger log)
{
    log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes + URL: {uri}");
}

使用上述方法,我能夠獲取上傳的項目的 URL。 目前,上述代碼是使用 Azure 提供的 Develop in Portal 選項生成的。

有什么方法可以獲取已上傳的 Blob 文件的SAS URL

從我們這邊復制之后。 這是我每次上傳 blob 時如何實現的。

using System;
using System.IO;
using Azure.Storage;
using Azure.Storage.Blobs;
using Azure.Storage.Sas;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;

namespace FunctionApp10
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static void Run([BlobTrigger("samples-workitems/{name}", Connection = "ConnectionStore")]Stream myBlob, Uri uri, string name, ILogger log)
        {
            log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
            BlobSasBuilder blobSasBuilder = new BlobSasBuilder()
            {
                BlobContainerName = "<YOURCONTAINERNAME>",
                BlobName = name,
                ExpiresOn = DateTime.UtcNow.AddMinutes(5),
            };
            blobSasBuilder.SetPermissions(BlobSasPermissions.All);
            string accountName = "<YOURACCOUNTNAME>";
            string accountKey = "<YOURACCOUNTKEY>";
            var sasToken = blobSasBuilder.ToSasQueryParameters(new StorageSharedKeyCredential(accountName, accountKey)).ToString();
            var sasUrl = uri.AbsoluteUri + "?" + sasToken;
            Console.WriteLine(sasUrl);
        }
    }
}

結果:

在此處輸入圖像描述

在存儲帳戶中

在此處輸入圖像描述

在此處輸入圖像描述

參考: 以編程方式生成 SAS 令牌 c#

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM