如何从 azure 函数应用程序将文件发送到 azure 存储

Posted

技术标签:

【中文标题】如何从 azure 函数应用程序将文件发送到 azure 存储【英文标题】:how to send file to the azure storage from azure function app 【发布时间】:2021-07-16 08:49:36 【问题描述】:

我正在使用一个 azure 函数应用程序(服务总线),它每次在 UI 中上传 excel 文件时都会触发。 并且出于任何原因,如果 excel 文件无法上传,则会引发异常消息。 我想将该异常消息存储到文本文件中,并将该文本文件存储到存储帐户中。 请建议我如何将该文件从我的函数应用程序存储到存储帐户中。

异常代码如下:

catch (Exception ex)
        
            logger.LogInformation($"Exception: ex.Message, ex.StackTrace");
            return "Failure";
        

【问题讨论】:

【参考方案1】:

也许您可以尝试使用此代码:

            catch (Exception ex)
            
                log.LogInformation($"Exception: ex.Message, ex.StackTrace");

                string connectionString = "";
                BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
                string containerName = "";

                // Create a local file in the ./data/ directory for uploading and downloading
                string localPath = "./data/";
                string fileName = "exception" + Guid.NewGuid().ToString() + ".txt";
                string localFilePath = Path.Combine(localPath, fileName);

                // Write text to the file
                await File.WriteAllTextAsync(localFilePath, $"Exception: ex.Message, ex.StackTrace");
                BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
                // Get a reference to a blob
                BlobClient blobClient = containerClient.GetBlobClient(fileName);

                // Open the file and upload its data
                using FileStream uploadFileStream = File.OpenRead(localFilePath);
                await blobClient.UploadAsync(uploadFileStream, true);
                uploadFileStream.Close();

                return "Failure";
            

请参考这个official documentation。

【讨论】:

以上是关于如何从 azure 函数应用程序将文件发送到 azure 存储的主要内容,如果未能解决你的问题,请参考以下文章

如何向 Azure Bot 发送短信?

Azure 函数中的 Az.Functions 模块引发错误

az login 从 github 操作任务失败

如何将推送通知从 Azure 发送到 Windows Mobile Cordova 应用程序

使用 azure 逻辑应用将 blob 从 azure 存储帐户动态发送到电子邮件

如何通过 Apache Beam 将文件上传到 Azure blob 存储?