/**
  * @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;
 }