在 DataLake 中创建一个文件并使其在 2 分钟后过期
Create a file in DataLake and make it expire after 2 minutes
我正在使用 Data Lake Gen 1,我想创建一个文件并将过期时间设置为创建后 2 分钟。
我正在使用这个方法:
public virtual System.Threading.Tasks.Task SetExpiryTimeAsync (string path, Microsoft.Azure.DataLake.Store.ExpiryOption eopt, long expiryTime, System.Threading.CancellationToken cancelToken = null);
像这样:
await client.SetExpiryTimeAsync(fileDestinationPath, ExpiryOption.RelativeToNow, _adlsFileExpirationInMinutes);
我找不到参数 long expiryTime 的工作原理。在 MSDN 中它说 "It's interpretation depends on what ExpiryOption user passes".
我不明白的是这个值很长:它代表什么:秒,滴答,小时......?
它代表milliseconds
,你可以从同步方法SetExpiryTime
中找到这个信息。以下是我通过 visual studio:
从 sdk 获取的截图
多一点信息,从Azure Data lake的源代码here,sync-mothed SetExpiryTime
实际上什么都不做,只是调用里面的async-method SetExpiryTimeAsync
,所以它们都有相同的参数定义:
根据实验:相对 ExpliryOption
值以毫秒为单位,ExpiryOption.Absolute
.
以毫秒为单位的 Unix UTC 时间戳
如果您需要将 DateTime 转换为 Unix 时间戳 - 您可以使用:
(long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds * 1000
我正在使用 Data Lake Gen 1,我想创建一个文件并将过期时间设置为创建后 2 分钟。
我正在使用这个方法:
public virtual System.Threading.Tasks.Task SetExpiryTimeAsync (string path, Microsoft.Azure.DataLake.Store.ExpiryOption eopt, long expiryTime, System.Threading.CancellationToken cancelToken = null);
像这样:
await client.SetExpiryTimeAsync(fileDestinationPath, ExpiryOption.RelativeToNow, _adlsFileExpirationInMinutes);
我找不到参数 long expiryTime 的工作原理。在 MSDN 中它说 "It's interpretation depends on what ExpiryOption user passes".
我不明白的是这个值很长:它代表什么:秒,滴答,小时......?
它代表milliseconds
,你可以从同步方法SetExpiryTime
中找到这个信息。以下是我通过 visual studio:
多一点信息,从Azure Data lake的源代码here,sync-mothed SetExpiryTime
实际上什么都不做,只是调用里面的async-method SetExpiryTimeAsync
,所以它们都有相同的参数定义:
根据实验:相对 ExpliryOption
值以毫秒为单位,ExpiryOption.Absolute
.
如果您需要将 DateTime 转换为 Unix 时间戳 - 您可以使用:
(long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds * 1000