如何获得 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 包。
我在 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 包。