Как проверить на Rackspace, загружен файл или нет?

Я работаю с Rackspace PHP API, где у меня есть требование проверить файл, если он существует, то сделать что-то, а если нет, то сделать что-то.

try {
  $file = $container->getObject($end_element);
  $fileExists = TRUE;
}
catch(Exception $e) {
  $fileExists = FALSE;
}
if ($fileExists) {
  // File is their, it needs to be rewrite/overwrite
  $file->setContent(fopen('sites/default/files/rackspace/' . $end_element, 'r+'));
  $file->update();
  // I'm getting this http://docs.rackspace.com/sdks/api/php/class-OpenCloud.ObjectStore.Resource.DataObject.html which I printted print_r($file->update());
}
else {
  // New file just to upload
  $container->uploadObject($end_element, fopen('sites/default/files/rackspace/' . $end_element, 'r+'), array());
}

person Rishi Kulshreshtha    schedule 18.06.2015    source источник


Ответы (1)


Чтобы узнать, существует ли объект в удаленном контейнере, попробуйте использовать objectExists следующим образом:

if ($container->objectExists('objectName.txt')) {
   // The object exists
} else {
   // The object doesn't exist
}

Это выполнит запрос HEAD для этого объекта, завернув любой ответ с ошибкой 404 в блок try/catch для вас.


Что касается выяснения даты создания объекта, API сообщает вам только дату последней модификации. Это будет дата создания, если вы не изменяли объект с момента его первой загрузки.

Чтобы узнать последнюю измененную дату и время, вам нужно запустить:

$object = $container->getObject('objectName.txt');
$created = $object->getLastModified();
person hohner    schedule 18.06.2015
comment
Можно ли также получить время загруженного файла? - person Rishi Kulshreshtha; 18.06.2015