/** * @param FileSync $fileSync * @return string */ public function getFileSyncUrl(FileSync $fileSync) { $fileSync = kFileSyncUtils::resolve($fileSync); $storage = StorageProfilePeer::retrieveByPK($fileSync->getDc()); if (!$storage) { return parent::getFileSyncUrl($fileSync); } $serverUrl = $storage->getDeliveryIisBaseUrl(); $partnerPath = myPartnerUtils::getUrlForPartner($fileSync->getPartnerId(), $fileSync->getPartnerId() * 100); if ($this->protocol == StorageProfile::PLAY_FORMAT_APPLE_HTTP) { return $partnerPath . $fileSync->getFilePath() . "/playlist.m3u8"; } if ($fileSync->getObjectSubType() != entry::FILE_SYNC_ENTRY_SUB_TYPE_ISM) { return parent::getFileSyncUrl($fileSync); } $path = $partnerPath . '/serveIsm/objectId/' . $fileSync->getObjectId() . '_' . $fileSync->getObjectSubType() . '_' . $fileSync->getVersion() . '.' . pathinfo(kFileSyncUtils::resolve($fileSync)->getFilePath(), PATHINFO_EXTENSION) . '/manifest'; // $path = $partnerPath.'/serveIsm/objectId/'.pathinfo(kFileSyncUtils::resolve($fileSync)->getFilePath(), PATHINFO_BASENAME).'/manifest'; $matches = null; if (preg_match('/(https?:\\/\\/[^\\/]+)(.*)/', $serverUrl, $matches)) { $serverUrl = $matches[1]; $path = $matches[2] . $path; } $path = str_replace('//', '/', $path); $window = $this->params['smooth_auth_seconds']; $param = $this->params['smooth_auth_param']; $salt = $this->params['smooth_auth_salt']; $authPath = $this->urlauth_gen_url($path, $param, $window, $salt, null, null); return $serverUrl . '/' . $authPath; }