azure - 如何获得 Azure 存储文件的租约?
问题描述
我在天蓝色云中有多实例 Web 应用程序。我想确保只有其中一个从 azure 存储文件中读取和处理文件。我认为使用租赁选项我可以做到这一点。
但是我无法找到适合此操作的方法。我找到了这个REST API 选项,但我正在寻找这样的东西。
此示例显示 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 包。
推荐阅读
- spring-boot - 没有使用spring boot应用程序登录外部tomcat
- sql - SQL我如何从日期时间转换为总小时数?
- python - 请求:在 python 发布请求中发送有效负载时出错
- asp.net-core - “Microsoft.Extensions.Caching.Memory”的 Asp.net Core、MemoryCache 和 CacheExtensions 是否是线程安全类型?
- hadoop - 如何选择映射器和减速器计数?
- php - 如何在 TypeORM 中获取按类别 ID 分组的产品?
- javascript - 卸载所有节点模块并尝试 npx create-react-app 后,它仍然无法正常工作
- r - 如何按条件从三列创建一列?
- python - self.x = x 有什么意义?
- django - 在 Django3 中接收“No Module named ''taggit”