Azure文件共享已租用文件的租约时长如何设置?
问题根因
你当前代码中调用fileClient.GetShareLeaseClient()获取的是文件共享级别的租约客户端,这类租约仅支持无限期生效,传入的60秒有效期参数不会生效,因此查询属性时会得到无限期的结果。
正确实现方案
要为单个文件设置1分钟有效期的租约,需要获取文件级别的租约客户端,文件级租约支持15-60秒的固定有效期配置,也支持设置为无限期。
正确实现代码如下:
var shareClient = new ShareClient(connectionString, "testfileshare"); shareClient.CreateIfNotExists(); var fileClient = shareClient.GetRootDirectoryClient().GetFileClient("test.xml"); // 提前确保文件存在,不存在则创建,否则租约操作会报404错误 fileClient.CreateIfNotExists(maxSize: 1024); // 可根据实际需求设置文件大小 // 获取文件级租约客户端,不要使用GetShareLeaseClient()(该方法操作共享级租约) var leaseClient = fileClient.GetFileLeaseClient(); // 申请60秒有效期的文件租约 leaseClient.Acquire(TimeSpan.FromSeconds(60)); // 拉取最新属性验证,此时LeaseDuration即为60秒固定时长 var leaseDuration = fileClient.GetProperties().Value.LeaseDuration;
补充说明:文件级固定时长租约的合法取值范围是15秒到60秒,传入超出该范围的时长参数会触发参数校验异常。
内容的提问来源于stack exchange,提问作者SnehalPatil
相关产品推荐
相关产品推荐

