【问题标题】:How to store csv file into webjob如何将csv文件存储到webjob中
【发布时间】:2017-08-22 15:18:10
【问题描述】:

我创建了一个带有搜索参数的队列触发器的 azure webjob。 我想使用这些参数处理搜索并将记录保存到 csv 文件中。

我想要一种将 csv 文件存储在 azure 上的方法,以便我可以将下载链接发送给用户?

【问题讨论】:

    标签: c# asp.net-mvc azure azure-webjobs


    【解决方案1】:

    您可以使用 Azure Blob 存储来存储 CSV。通过确保容器具有正确的权限,您可以直接获取指向 blob 的链接并发送给用户。此外,您可以使用 SASUrls 来限制 URL 的有效期。

    【讨论】:

      【解决方案2】:

      我想要一种将 csv 文件存储在 azure 上的方法,以便我可以将下载链接发送给用户?

      您可以生成 csv 文件并将其写入 Azure blob 存储,这是一个简单的示例,请参考。

      public static void ProcessQueueMessage([QueueTrigger("myqueue")] string message, [Blob("mycontainer/{queueTrigger}.csv")] out string output, TextWriter log)
      {
          DataTable dt = new DataTable();
          dt.Columns.Add("ID");
          dt.Columns.Add("Name");
      
          dt.Rows.Add("1", "fred");
      
          //your logic to query the result 
          //and generate CSV string
      
          StringBuilder sb = new StringBuilder();
      
          IEnumerable<string> columnNames = dt.Columns.Cast<DataColumn>().
                                              Select(column => column.ColumnName);
          sb.AppendLine(string.Join(",", columnNames));
      
          foreach (DataRow row in dt.Rows)
          {
              IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
              sb.AppendLine(string.Join(",", fields));
          }
      
      
          output = sb.ToString();
      
          log.WriteLine(message);
      }
      

      在 Azure blob 中存储 csv 文件后,您可以向用户提供 mycontainer/{blobname}.csv 的 URL。您可以允许匿名访问或为客户端提供共享访问签名 (SAS),以使 blob 可供其他用户使用。

      请查看“Controlling access to blob data”部分以了解如何控制对 blob 数据的访问。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-24
        • 2018-07-11
        • 1970-01-01
        • 2019-03-03
        • 1970-01-01
        • 2021-09-25
        • 1970-01-01
        • 2021-05-17
        相关资源
        最近更新 更多