c# - 如何使用带有 HTTP 触发器的 Azure Functions 在 Azure Blob 存储中上传 excel 文件?
问题描述
我正在尝试使用 Azure 函数(HTTP 触发器)在 azure blob 存储中上传 excel 文件。我附上了我的代码。它无法正常工作。
我收到类似的错误"Cannot implicitly convert type 'System.Threading.Tasks.Task<System.Collections.Generic.List<FileUpload1.Function1.FileDetails>>' to 'FileUpload1.Function1.FileDetails' FileUpload"
请帮我解决这个问题。
[FunctionName("Function1")]
public static FileDetails Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req,
ILogger log)
{
if (!req.Content.IsMimeMultipartContent("form-data"))
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var multipartStreamProvider = new AzureBlobStorageMultipartProvider(BlobHelper.GetWebApiContainer());
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("configuratorstorage1");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("excelfiles");
//var count = container.ListBlobs().Count(); return
return req.Content.ReadAsMultipartAsync(multipartStreamProvider).ContinueWith(t =>
{
if (t.IsFaulted)
{
throw t.Exception;
}
AzureBlobStorageMultipartProvider provider = t.Result;
return provider.Files;
});
我期望我必须使用 azure 函数 HTTP 触发器在 azure blob 存储中上传 excel 文件。
解决方案
目前,req.Content.ReadAsMultipartAsync(multipartStreamProvider).ContinueWith(t => ...
正在回归Task<FileDetails>
。您需要await
它来获取要返回的对象public static FileDetails Run()
return await req.Content.ReadAsMultipartAsync(multipartStreamProvider).ContinueWith(t =>
{
if (t.IsFaulted)
{
throw t.Exception;
}
AzureBlobStorageMultipartProvider provider = t.Result;
return provider.Files;
});
编辑:在快速谷歌之后 -req.Content.ReadAsMultipartAsync(multipartStreamProvider).ContinueWith(t => ...
可能会返回Task<List<FileDetails>>
,所以如果上述方法不起作用,请尝试。
推荐阅读
- javascript - React App Unexpected block statement 围绕箭头主体;在 `=>` 之后立即移动返回值。错误信息
- azure-devops - 如何在 DevOps 构建管道中创建条件构建属性
- css - 导入的角度模块在第一次访问路线时不起作用,但在后续访问中起作用
- reactjs - 安装 Webpack 5 时 preact build 不起作用
- php - php curlstrapi cms 多张图片上传
- amazon-web-services - “Invoke_endpoint”调用能否使 lambda 函数超时?
- json - 如何在 Perl 中遍历 JSON 对象?
- react-native - Mapbox React Native - 使用表达式格式化 textField 样式属性
- javascript - 以编程方式从 InlineKeyboardMarkup 获取隐藏消息
- javascript - 为什么 php://input 在 JS fetch post 请求上返回 null?