В настоящее время я не нашел способ запроса/фильтр, основанный на дату последнего изменения.
Что вы можете сделать, это посмотреть метаданные для каждого объекта в контейнере. На низком уровне для этого требуется просто операция HEAD для каждого объекта. Хотя это, вероятно, требует от вас проверки каждого объекта, вы только захватываете заголовки и не загружаете их.
last modified date is in the HTTP headers при выполнении операции ГОЛОВЫ на объекте:
HEAD /<api version>/<account>/<container>/<object> HTTP/1.1
Host: storage.clouddrive.com
X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
не возвращается Никакое тело ответа, но заголовки HTTP имеют пикантные подробности:
HTTP/1.1 200 OK
Date: Thu, 07 Jun 2007 20:59:39 GMT
Last-Modified: Fri, 12 Jun 2007 13:40:18 GMT
ETag: 8a964ee2a5e88be344f36c22562a6486
Content-Length: 512000
Content-Type: text/plain; charset=UTF-8
X-Object-Meta-Meat: Bacon
Существует метод в PHP библиотека под названием fetch
, которая может получить just the headers объекта, но она закрыта, и я не вижу, чтобы она использовалась anywhere. Это похоже на то, что нужно поднимать вопрос о GitHub или делать собственный PR.
Прямо сейчас вы можете получить каждый объект и тянуть заголовки из себя:
$obj = $container->DataObject();
$headers = $obj->metadataHeaders();
$headers["Last-Modified"]
К сожалению, не поможет полностью. Я пингует одного из PHP-разработчиков напрямую, и, надеюсь, мы найдем еще один вариант, если это не сработает.
Сколько файлов мы говорим в резервной копии? Несколько больших файлов или значительное количество небольших файлов? –