【问题标题】:how to create a sub folder in azure storage account and copy the files by using azure function App如何在 azure 存储帐户中创建子文件夹并使用 azure function App 复制文件
【发布时间】:2021-01-03 02:09:27
【问题描述】:

我的存储帐户中有两个文件夹 源文件夹和目标文件夹 我想在我的源文件夹中添加 Demo 文件夹,我想将我的源文件夹文件复制到 Demo 文件夹并在复制到存档文件夹后删除我的所有源文件夹文件

  1. 如何在另一个文件夹中创建文件夹
  2. 如何将文件从一个文件夹复制到另一个文件夹

如何添加我通过这种方式传递的文件夹:

 var directory2 = container.GetDirectoryReference("csvfile / Source Folder / Archieve Folder");
        CloudBlockBlob blockBlob2 = directory2.GetBlockBlobReference("empchange1.csv");
  1. 容器名-csv文件
  2. 文件夹-来源
  3. 子文件夹存档

【问题讨论】:

    标签: azure azure-functions azure-function-app azure-functions-runtime azure-function-async


    【解决方案1】:

    Azure Blob 存储中没有(物理)文件夹之类的东西。只有虚拟文件夹的概念。通过在名称中使用/,您将创建一个虚拟文件夹。例如,名为 virtualfolder/myblob.ext 的 blob 被放置在名为 virtualfolder 的虚拟文件夹中。

    如果您想创建一个虚拟子文件夹,只需将名称放在 blob 中并使用“/”作为分隔符,如下所示:

    virtualfolder/subfolder/myblob.ext

    如果您查看the docs for cloudblobdirectory,也会提到虚拟文件夹的概念

    表示 虚拟 blob 目录,由分隔符指定。

    也就是说,将 blob 移动到不同的文件夹因此与将 blob 重命名为相同,例如 otherfolder/myblob.ext。不幸的是,没有允许您重命名 blob 的 API。解决方案是下载 blob 内容并使用不同的名称上传。

    【讨论】:

      【解决方案2】:

      这是一个将 blob 从一个容器移动到另一个容器的示例。请注意这是一个两步过程,并注意 bindings 使此声明性和易于理解。我正在移动一个 blob 从 inout

      using BlobMover.Models;
      using Microsoft.Azure.WebJobs;
      using Microsoft.Extensions.Logging;
      using Microsoft.WindowsAzure.Storage.Blob;
      using System;
      using System.IO;
      using System.Threading.Tasks;
      
      namespace BlobMover
      {
          public static class BlobMover
          {
              [StorageAccount("Connection")]
              [FunctionName("BlobMover")]
              public static async Task Run(
                  [QueueTrigger("%BlobMover:TriggerQueue%")] BlobMessage msg,
                  [Blob("{source}-error/{name}", FileAccess.Write)] CloudBlockBlob error,
                  [Blob("{destination}/{name}", FileAccess.Write)] CloudBlockBlob @out,
                  [Blob("{source}/{name}", FileAccess.Read)] CloudBlockBlob @in,
                  ILogger log)
              {
                  var trackingId = Guid.NewGuid();
      
                  await @out.StartCopyAsync(@in);
                  await @in.DeleteAsync();
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-11-15
        • 2021-08-03
        • 2021-06-08
        • 2022-11-11
        • 2018-11-29
        • 2015-07-11
        • 2021-01-04
        • 1970-01-01
        • 2014-12-30
        相关资源
        最近更新 更多