如何获得 Azure 存储文件的租约?

How to get lease on Azure storage file?

我在 Azure 云中有一个多实例 Web 应用程序。我想确保只有其中一个从 azure 存储文件中读取和处理文件。我认为使用租赁选项可以实现它。

但是我找不到适合此操作的方法。我找到了这个 REST API option but I am looking for something like this.

此示例显示的是 blob 存储。什么是文件存储选项?我正在使用最新的文件存储 nuget。

编辑:

这就是我从存储文件中获取数据并处理数据的方式。

    var storageAccount = CloudStorageAccount.Parse("FileStorageConnectionString");
    var fileClient = storageAccount.CreateCloudFileClient();
    var share = fileClient.GetShareReference("StorageFileShareName");
    var file = this.share.GetRootDirectoryReference().GetFileReference("file.txt");
---processing file and renaming the file after processing---

如何在这个文件上实现租约,这样其他云实例就无法访问这个文件?处理文件后我也会重命名它。

请尝试如下操作:

        string connectionString = "DefaultEndpointsProtocol=https;AccountName=<account-name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net;";
        var shareClient = new ShareClient(connectionString, "test");
        shareClient.CreateIfNotExists();
        var fileClient = shareClient.GetRootDirectoryClient().GetFileClient("test.txt");
        var bytes = Encoding.UTF8.GetBytes("This is a test");
        fileClient.Create(bytes.Length);
        fileClient.Upload(new MemoryStream(bytes));
        var leaseClient = fileClient.GetShareLeaseClient();
        Console.WriteLine("Acquiring lease...");
        var leaseId = leaseClient.Acquire();
        Console.WriteLine("Lease Id: " + leaseId);
        Console.WriteLine("Breaking lease...");
        leaseClient.Break();
        Console.WriteLine("Lease broken...");

它使用 Azure.Storage.Files.Shares Nuget 包。