0

我正在使用 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 中,它说“它的解释取决于用户通过的 ExpiryOption”

我不明白的是这个值很长:它代表什么:秒,滴答声,小时......?

4

2 回答 2

0

它表示milliseconds,您可以从同步方法中找到此信息SetExpiryTime。以下是我通过 Visual Studio 从 sdk 获得的屏幕截图:

在此处输入图像描述

再多一点信息,从这里Azure Data Lake 的源代码来看,sync-mothedSetExpiryTime实际上什么也不做,只是调用了SetExpiryTimeAsync里面的 async-method,所以它们都有相同的参数定义:

在此处输入图像描述

于 2019-10-14T06:08:33.187 回答
0

来自实验:相对ExpliryOption值以毫秒为单位,Unix UTC 时间戳以毫秒为单位ExpiryOption.Absolute

如果您需要将 DateTime 转换为 Unix 时间戳 - 您可以使用:

(long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds * 1000
于 2020-12-02T00:12:53.720 回答