簡體   English   中英

Azure 函數 blob 存儲文件名

[英]Azure function blob storage file name

將 azure 函數與 blob 存儲輸出綁定一起使用時,如何獲取創建的 blob 的名稱、路徑或 URL? 我想在保存后將其保存到數據庫中。

我使用 Python,但任何示例都可以:

blob = open(os.environ['outputBlob'], 'wb')
blob.write(attachment.get_payload(decode=True))

print blob.name # this is not the correct name, but actually the temp file name I think

blob.close()

對於 C#:正如在https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob#input所討論的,您可以使用以下類型的 blob 綁定

在此處輸入圖片說明

下面是綁定json文件和代碼的例子。 我在 http return 中返回 outpuBlob.Uri 以獲取 Blob 的主要位置路徑。

綁定:-

{
  "bindings": [
    {
      "authLevel": "function",
      "name": "req",
      "type": "httpTrigger",
      "direction": "in",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "name": "$return",
      "type": "http",
      "direction": "out"
    },
    {
      "type": "blob",
      "name": "outputBlob",
      "path": "outcontainer/{rand-guid}",
      "connection": "AzureWebJobsDashboard",
      "direction": "inout"
    }
  ],
  "disabled": false
}

函數代碼(C#):

#r "Microsoft.WindowsAzure.Storage"

using System.Net;
using Microsoft.WindowsAzure.Storage.Blob;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log,CloudBlockBlob outputBlob)
{
    log.Info("C# HTTP trigger function processed a request.");

    // parse query parameter
    string name = req.GetQueryNameValuePairs()
        .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
        .Value;

    if (name == null)
    {
        // Get request body
        dynamic data = await req.Content.ReadAsAsync<object>();
        name = data?.name;
    }



    return name == null
        ? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
        : req.CreateResponse(HttpStatusCode.OK, "Hello " + outputBlob.Uri);
}

查看 Python 腳本進程空間中的環境變量。 您應該有一個包含 blob 綁定路徑的文件。

暫無
暫無

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

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