在 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