使用Azure功能将文件下载并存储到Azure

达摩什·索兰基(Dharmesh Solanki)

我想从某个第三方服务器下载文件,并想存储在Azure存储中。但是我想使用Azure函数执行此过程。以下是我要实现的步骤。

  1. 创建Azure(HTTP触发器启用)功能,该功能将由第三方服务器使用WebHook执行。
  2. 使用Webhook在C#中使用“ Webclient”提供的下载URL下载文件内容。
  3. 将文件内容直接存储到Azure存储中。

       
        Task.Run(() =>
        {
        using (var webClient = new WebClient())
        {
            webClient.Headers.Add(HttpRequestHeader.Authorization, string.Format("Bearer {0}", {download token}));
            webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
            webClient.DownloadFileAsync("https://www.server.com/file1.mp4", {Here I want to store file into Azure Storage});
            }
            });
        
        
Bowman Zhu

您可以像这样将文件放入请求的请求主体中,然后将其上传到Azure Blob存储中。

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Microsoft.WindowsAzure.Storage;

namespace FunctionApp5
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            //Here is the keycode.

            //Connect to the Storage Account.
            var storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=bowmanimagestorage02;AccountKey=xxxxxxxfile.core.windows.net/");
            var myClient = storageAccount.CreateCloudBlobClient();

            //Here is the container name on portal.
            var container = myClient.GetContainerReference("test");

            //Here is the name you want to save as.
            var blockBlob = container.GetBlockBlobReference("something.txt");

            //Put the stream in this place.
            await blockBlob.UploadFromStreamAsync(req.Body);


            string name = req.Query["name"];

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data = JsonConvert.DeserializeObject(requestBody);
            name = name ?? data?.name;

            return name != null
                ? (ActionResult)new OkObjectResult($"Hello, {name}")
                : new BadRequestObjectResult("Please pass a name on the query string or in the request body");
        }
    }
}

当然您也可以传入数据流,其关键代码是相同的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Azure云功能将所有Azure存储队列消息批量处理为Blob?

使用 Azure 功能将 Postgres 数据备份/导出到 Azure Blob 存储

使用 SAS 从 Azure Blob 存储下载文件到浏览器

通过Firebase功能将文件下载到Firebase存储

使用Azure功能处理Azure Datalake存储文件

Azure功能使用FluentFTP将文件从FTP复制到Blob存储

使用Bash / Curl从Azure Blob存储下载文件

从Azure功能访问Azure文件存储

使用Azure Function从Azure Blob存储下载文件将返回不同的文件大小

Azure/Python - 从存储快速下载文件

如何从Azure的Blob存储下载文件

从Azure Blob存储下载文件

Azure Blob存储下载所有文件

使用Azure数据工厂将文件内容从Azure存储复制到Azure SQL Db

使用Azure Python功能和托管身份从存储帐户下载

Azure功能在哪里存储文件?

从文件共享中读取图像路径并存储在表存储中 azure

无法使用Azure功能节点将文件上传到Azure Blob存储

使用法语文件名从Azure Blob存储下载文件

Azure存储帐户,使用公共链接公开文件以下载文件

使用PHP的Azure文件存储

具有Blob存储的Azure功能。如何创建BlobTrigger到子文件夹?

Azure 文件存储 - 恢复到之前的快照

使用 ARM 模板将文件下载并存储在特定位置启动 Windows VM

使用PHP下载并存储受密码保护的远程文件

如何使用Azure DevOps REST Api从Git存储库下载分支中的文件?

如何使用 Powershell 从 Azure 存储下载 blob 文件并将其保存到 FTP 服务器?

如何直接使用Opencv从Azure Blob存储读取图像,而不将其下载到本地文件?

无法使用 SSIS 从 Azure blob 存储下载页面 blob 类型文件