1

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

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

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

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

2 回答 2

2

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

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

virtualfolder/subfolder/myblob.ext

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

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

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

于 2020-09-16T10:18:19.440 回答
0

这是将 blob 从一个容器移动到另一个容器的示例。请注意这是一个两步过程,并注意使此声明性和易于理解的绑定。我正在一个 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();
        }
    }
}
于 2020-09-23T10:48:02.703 回答