Azure Blob - ASP.NET,将 Blob 复制到同一集合中

Posted

技术标签:

【中文标题】Azure Blob - ASP.NET,将 Blob 复制到同一集合中【英文标题】:Azure Blob - ASP.NET, Copy Blob to within Same Collection 【发布时间】:2020-11-03 08:33:42 【问题描述】:

我正在尝试从现有的 Azure blob 复制到具有相同文件名的新位置。这两个文件夹在同一个容器中。有什么想法吗?

                        // details of where we want to copy from
                        var sourceContainerName = blobContainer.ToString();
                        string fileName = Path.GetFileName(@dirItem.Uri.ToString());
                        var sourceFilePath = "192-168-2-44/img/" + fileName;

                        // details of where we want to copy to
                        var destContainerName = blobContainer.ToString();
                        var destFilePath = "192-168-2-44/archive/" + fileName;

                        var sourceContainer = blobClient.GetContainerReference(sourceContainerName);
                        var destContainer = blobClient.GetContainerReference(destContainerName);

                        Console.WriteLine(sourceContainer);
                        Console.WriteLine(destContainer);

                        CloudBlockBlob sourceBlob = sourceContainer.GetBlockBlobReference(sourceFilePath);
                        CloudBlockBlob destBlob = destContainer.GetBlockBlobReference(destFilePath);

                         await destBlob.StartCopyAsync(sourceBlob);

【问题讨论】:

有错误吗?你在看什么? 我在 VS 或浏览器中没有看到任何错误,并且文件没有被传输。 你见过这个吗? microsoft.github.io/AzureTipsAndTricks/blog/tip78.html 只是我看到的东西。 【参考方案1】:

我在我的网站上进行了测试,效果很好。

您可以参考以下代码:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("connectionstring");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

var sourceContainer = blobClient.GetContainerReference("container");
var destContainer = blobClient.GetContainerReference("container");

var sourceFilePath = "hhh/www/" + "hello.txt";
var destFilePath = "hhh/jjj/" + "hello.txt";
CloudBlockBlob sourceBlob = sourceContainer.GetBlockBlobReference(sourceFilePath);
CloudBlockBlob destBlob = destContainer.GetBlockBlobReference(destFilePath);
await destBlob.StartCopyAsync(sourceBlob);

【讨论】:

以上是关于Azure Blob - ASP.NET,将 Blob 复制到同一集合中的主要内容,如果未能解决你的问题,请参考以下文章

如何将图像从 Asp.net Core IFormFile 上传到 Azure Blob 存储?

如何将图片存储在 asp.net mvc 应用程序的 azure blob 存储中?

与 v11 相比,使用 v12 将文件上传到 Azure Blob 存储 SDK 的 ASP.NET Core 使用更高的内存

从 Asp.Net 网站外部访问 Azure Blob 存储

ASP.NET Core 应用程序日志未写入 Azure 应用服务中的 Blob

无法通过 asp.net 核心服务器端将 ~200mb 文件上传到 azure blob 存储