private function doGetServeIsmUrl(FileSync $fileSync, $partnerPath, StorageProfile $storage = null) { $serverUrl = $this->getUrl(); if ($fileSync->getFileType() == FileSync::FILE_SYNC_FILE_TYPE_FILE) { $path = $partnerPath; $path .= '/serveIsm/objectId/' . $fileSync->getObjectId() . '_' . $fileSync->getObjectSubType() . '_' . $fileSync->getVersion(); $path .= '.' . pathinfo($fileSync->getFilePath(), PATHINFO_EXTENSION) . '/manifest'; } else { if ($storage) { $serverUrl = $this->getUrl(); } $path = '/' . $fileSync->getFilePath() . '/manifest'; } $matches = null; if (preg_match('/(https?:\\/\\/[^\\/]+)(.*)/', $serverUrl, $matches)) { $path = $matches[2] . $path; } $path = str_replace('//', '/', $path); return $path; }
private function deleteOldFileSyncVersions(FileSync $newFileSync) { KalturaLog::debug('Deleting old file_sync versions for [' . $newFileSync->getId() . ']'); if (kConf::hasParam('num_of_old_file_sync_versions_to_keep')) { $keepCount = kConf::get('num_of_old_file_sync_versions_to_keep'); if (!is_numeric($newFileSync->getVersion())) { return; } $intVersion = intval($newFileSync->getVersion()); $c = new Criteria(); $c->add(FileSyncPeer::OBJECT_ID, $newFileSync->getObjectId()); $c->add(FileSyncPeer::OBJECT_TYPE, $newFileSync->getObjectType()); $c->add(FileSyncPeer::OBJECT_SUB_TYPE, $newFileSync->getObjectSubType()); $c->add(FileSyncPeer::STATUS, array(FileSync::FILE_SYNC_STATUS_PURGED, FileSync::FILE_SYNC_STATUS_DELETED), Criteria::NOT_IN); $c->setLimit(40); //we limit the number of files to delete in one run so there will be no out of memory issues $fileSyncs = FileSyncPeer::doSelect($c); foreach ($fileSyncs as $fileSync) { if (is_numeric($fileSync->getVersion())) { $currentIntVersion = intval($fileSync->getVersion()); if ($intVersion - $keepCount > $currentIntVersion) { $key = kFileSyncUtils::getKeyForFileSync($fileSync); self::deleteSyncFileForKey($key); } } } } }
/** * Get the FileSyncKey object by its file sync object * * @param FileSync $fileSync * @return FileSyncKey */ public static function getKeyForFileSync(FileSync $fileSync) { $key = new FileSyncKey(); $key->object_type = $fileSync->getObjectType(); $key->object_id = $fileSync->getObjectId(); $key->version = $fileSync->getVersion(); $key->object_sub_type = $fileSync->getObjectSubType(); $key->partner_id = $fileSync->getPartnerId(); return $key; }
private static function conditionalAssetLocalFileSyncsDelete(FileSync $fileSync, asset $asset) { $unClosedStatuses = array(asset::ASSET_STATUS_QUEUED, asset::ASSET_STATUS_CONVERTING, asset::ASSET_STATUS_WAIT_FOR_CONVERT, asset::ASSET_STATUS_EXPORTING); $unClosedAssets = assetPeer::retrieveReadyByEntryId($asset->getEntryId(), null, $unClosedStatuses); if (count($unClosedAssets)) { $asset->setFileSyncVersionsToDelete(array($fileSync->getVersion())); $asset->save(); return; } $assetsToDelete = assetPeer::retrieveReadyByEntryId($asset->getEntryId()); self::deleteAssetLocalFileSyncsByAssetArray($assetsToDelete); self::deleteAssetLocalFileSyncs($fileSync->getVersion(), $asset); }