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 存储