Как получить дату изменения файла в облачных файлах?
Как получить дату изменения файла в облачных файлах?
Я использую.net SDK из облачных файлов (а не пакет для установки в стойку).
Я могу получить список своих файлов и вызвать размер GetStorageItemInformation, но я хочу знать, когда файл был помещен в облачные файлы. Если я использую приложение Cloudberry Explorer, я вижу, что оно содержит информацию.
Это в.net SDK и где?
1 ответ
При переборе файлов в вашем контейнере вы можете использовать контейнер 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
Если в вашем контейнере более 10000 файлов, вам нужно будет использовать параметры подкачки, чтобы просмотреть все файлы. В приведенном ниже примере я пролистываю результаты по 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());
}