/** * @param FileSyncKey $key * @param string $url * @param StorageProfile $externalStorage * @return SyncFile */ public static function createReadyExternalSyncFileForKey(FileSyncKey $key, $url, StorageProfile $externalStorage) { $externalStorageId = $externalStorage->getId(); KalturaLog::log(__METHOD__ . " - key [{$key}], externalStorage [{$externalStorageId}]"); $fileRoot = $externalStorage->getDeliveryHttpBaseUrl(); $filePath = str_replace($fileRoot, '', $url); $c = FileSyncPeer::getCriteriaForFileSyncKey($key); $c->add(FileSyncPeer::DC, $externalStorageId); $fileSync = FileSyncPeer::doSelectOne($c); if (!$fileSync) { $fileSync = FileSync::createForFileSyncKey($key); } $fileSync->setDc($externalStorageId); $fileSync->setFileRoot($fileRoot); $fileSync->setFilePath($filePath); $fileSync->setFileSize(-1); $fileSync->setStatus(FileSync::FILE_SYNC_STATUS_READY); $fileSync->setOriginal(false); $fileSync->setFileType(FileSync::FILE_SYNC_FILE_TYPE_URL); $fileSync->save(); kEventsManager::raiseEvent(new kObjectAddedEvent($fileSync)); return $fileSync; }