Beispiel #1
0
 /**
  * @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;
 }