如何获取云文件中文件的修改日期?
我正在使用来自云文件的 .net SDK(不是机架空间 nu get 包)。
我可以获取我的文件列表并调用 GetStorageItemInformation 大小,但我想知道文件何时被放到云文件中。如果我使用 Cloudberry 资源管理器应用程序,我会看到它有信息。
它在 .net SDK 中吗?在哪里?
如何获取云文件中文件的修改日期?
我正在使用来自云文件的 .net SDK(不是机架空间 nu get 包)。
我可以获取我的文件列表并调用 GetStorageItemInformation 大小,但我想知道文件何时被放到云文件中。如果我使用 Cloudberry 资源管理器应用程序,我会看到它有信息。
它在 .net SDK 中吗?在哪里?
迭代容器中的文件时,可以使用 OpenStack.NET 的 ContainerObject.LastModified。这是一个控制台应用程序,它列出了一个区域中的所有容器及其文件以及最后修改的时间戳。
using System;
using net.openstack.Core.Domain;
using net.openstack.Providers.Rackspace;
namespace CloudFilesDateModified
{
class Program
{
static void Main(string[] args)
{
const string region = "DFW";
var identity = new CloudIdentity { Username = "username", APIKey = "apikey" };
var cloudfiles = new CloudFilesProvider(identity);
foreach (Container container in cloudfiles.ListContainers(region:region))
{
Console.WriteLine($"Container: {container.Name}");
foreach (ContainerObject file in cloudfiles.ListObjects(container.Name, region: region))
{
Console.WriteLine($"\t{file.Name} - {file.LastModified}");
}
}
Console.ReadLine();
}
}
}
下面是一些示例输出
Container: test
foobar - 10/12/2015 2:00:26 PM -06:00
foobar/file.png - 11/6/2015 7:34:42 PM -06:00
foobar/index.html - 11/6/2015 7:34:31 PM -06:00
如果您的容器有超过 10,000 个文件,您将需要使用分页参数来遍历所有文件。在下面的示例中,我一次翻阅 100 个结果。
foreach (Container container in cloudfiles.ListContainers(region: region))
{
Console.WriteLine($"Container: {container.Name}");
int limit = 100;
string lastFileName = null;
IEnumerable<ContainerObject> results;
do
{
results = cloudfiles.ListObjects(container.Name, region: region, limit: limit, marker: lastFileName);
foreach (ContainerObject file in results)
{
Console.WriteLine($"\t{file.Name} - {file.LastModified}");
lastFileName = file.Name;
}
} while (results.Any());
}