【问题标题】:Create a file in DataLake and make it expire after 2 minutes在 DataLake 中创建一个文件,并使其在 2 分钟后过期
【发布时间】:2019-10-11 09:07:54
【问题描述】:

我正在使用 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”

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

【问题讨论】:

    标签: azure-data-lake data-lake


    【解决方案1】:

    它代表milliseconds,你可以从同步方法SetExpiryTime中找到这个信息。以下是我通过visual studio从sdk得到的截图:

    更多信息,来自Azure Data Lake here的源代码,sync-mothed SetExpiryTime实际上什么都不做,只是在里面调用了async-method SetExpiryTimeAsync,所以它们都有相同的参数定义:

    【讨论】:

      【解决方案2】:

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

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

      (long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds * 1000
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-26
        • 1970-01-01
        • 1970-01-01
        • 2020-06-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-08
        相关资源
        最近更新 更多