我试图弄清楚如何将Azure文件存储中的文件从一个位置移动到同一个共享中的另一个位置。
E.g。
source -> \\Share1\someFile.txt
destination -> \\Share1\Foo\Bar\someFile.txt
CreateIfNotExistsAsync
吗?喝彩!
答案 0 :(得分:5)
这是documented in the Getting Started guide on Azure Storage Files参考。
您需要的是将文件从一个位置复制到另一个位置的StartCopy
方法。
// Start the copy operation.
destinationFile.StartCopy(sourceFile);
并且,是的,如果目标目录不存在,则必须创建目标目录。
答案 1 :(得分:3)
不幸的是,我们没有通过客户端SDK所依赖的REST API公开移动/重命名功能。您当然可以通过SMB执行这些功能。我们在积压工作中确实拥有这些功能,但尚未制定实施时间表。
答案 2 :(得分:2)
赞:
onkey()
答案 3 :(得分:2)
以下是带有新blob API的Asp.net Core 3+的更新答案。您可以将BlockBlobClient与StartCopyFromUriAsync一起使用,如果要等待完成WaitForCompletionAsync
struct Countries : Codable {
var Countries : [Country]
}
或者如果您不需要等待完成而只想“解雇”。
struct Countries : Codable {
var countries : [Country]
enum CodingKeys: String, CodingKey {
case countries = "Countries"
}
}
答案 4 :(得分:1)
Azure存储文件共享是SMB兼容的共享。因此,您应该能够使用正常的文件I / O操作进行文件复制/移动。这与直接blob操作形成对比,后者需要通过Storage API专门创建容器,启动blob副本等。
答案 5 :(得分:-2)
Azure blob子控制器是一个虚拟功能,因为它们实际上不存在,blob /文件的名称包含完整路径。因此,您不必明确“创建”目录。
我不认为Azure blob /文件存在原子“重命名”方法...要解决它,你必须复制(使用新名称)然后删除原始文件。