我创建了一个带有搜索参数的队列触发器的azure webjob。 我想使用这些参数处理搜索并将记录保存到csv文件中。
我想要一种方法在Azure上存储csv文件,以便我可以将该下载链接发送给用户?
答案 0 :(得分:0)
您可以使用Azure Blob存储来存储CSV。通过确保容器具有正确的权限,您可以直接获取blob的链接并发送给用户。此外,您可以使用SASUrls来限制URL有效期的持续时间。
答案 1 :(得分:0)
我想要一种方法在Azure上存储csv文件,以便我可以将该下载链接发送给用户?
您可以生成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。
请检查&#34; Controlling access to blob data&#34;部分知道如何控制对blob数据的访问。