/** * Get CDN URL */ function get_cdn_url($type = 'http') { // Ensure CDN instance exists if (check_cdn() === false) { $wp_url = wp_upload_dir(); return $wp_url['baseurl']; } // Get correct CDN URL $type = strtolower($type); if ($type == 'ssl' || $type == 'https') { // Return HTTPS URI return $_SESSION['cdn']->container_object()->SSLURI(); } else { // Return HTTP URI return $_SESSION['cdn']->container_object()->CDNURI(); } }
/** * Get CDN URL */ function get_cdn_url($type = 'http') { // Ensure CDN instance exists if (check_cdn() === false) { $wp_url = wp_upload_dir(); return $wp_url['baseurl']; } // Get correct CDN URL $type = strtolower($type); if ($_SESSION['cdn']->opencloud_version == '1.10.0') { if ($type == 'ssl' || $type == 'https') { // Return SSL URI return $_SESSION['cdn']->container_object()->getCdn()->getCdnSslUri(); } elseif ($type == 'streaming') { // Return Streaming URI return $_SESSION['cdn']->container_object()->getCdn()->getCdnStreamingUri(); } elseif ($type == 'ios-streaming') { // Return Streaming URI return $_SESSION['cdn']->container_object()->getCdn()->getIosStreamingUri(); } else { // Return HTTP URI return $_SESSION['cdn']->container_object()->getCdn()->getCdnUri(); } } else { if ($type == 'ssl' || $type == 'https') { // Return SSL URI return $_SESSION['cdn']->container_object()->SSLURI(); } elseif ($type == 'streaming') { // Return Streaming URI // return $_SESSION['cdn']->container_object()->getCdn()->getCdnStreamingUri(); return $_SESSION['cdn']->container_object()->CDNURI(); } elseif ($type == 'ios-streaming') { // Return Streaming URI // return $_SESSION['cdn']->container_object()->getCdn()->getIosStreamingUri(); return $_SESSION['cdn']->container_object()->CDNURI(); } else { // Return HTTP URI return $_SESSION['cdn']->container_object()->CDNURI(); } } }
/** * Get list of CDN objects */ public function get_cdn_objects($force_cache = false) { // Get time difference $this->api_settings->last_cache_time = isset($this->api_settings->last_cache_time) ? $this->api_settings->last_cache_time : time(); $time_diff = (time() - $this->api_settings->last_cache_time) / 60; // If caching is set, return CDN cache if (isset($this->api_settings->cache_cdn_objects) && $this->api_settings->cache_cdn_objects > 0) { if (isset($_SESSION['cdn_object_cache']) && $time_diff < $this->api_settings->cache_cdn_objects && $force_cache === false) { return $_SESSION['cdn_object_cache']; } } // Ensure CDN instance exists if (check_cdn() === false) { return array('response' => 'fail', 'message' => 'Error instantiating CDN session.'); } // Set array to store CDN objects $cdn_objects = array(); // Get objects if ($this->opencloud_version == '1.10.0') { $oc_service = $this->opencloud_client()->objectStoreService('cloudFiles', $this->api_settings->region); $objects = $oc_service->getContainer($this->api_settings->container)->objectList(); foreach ($objects as $object) { $cdn_objects[] = array('file_name' => $object->getName(), 'file_size' => $object->getContentLength()); } } else { $files = $this->container_object()->objectList(); while ($file = $files->next()) { $cdn_objects[] = array('file_name' => $file->name, 'file_size' => $file->bytes); } } // Set object cache if (isset($this->api_settings->cache_cdn_objects) && $this->api_settings->cache_cdn_objects > 0 || $force_cache == true) { $this->api_settings->last_cache_time = time(); $_SESSION['cdn_object_cache'] = $cdn_objects; } // Return CDN objects return $cdn_objects; }
try { $save_settings = save_cdn_settings(); // See if save was successful if (isset($save_settings['response']) && $save_settings['response'] == 'error') { $show_errors[] = $save_settings['message']; } } catch (Exception $exc) { $settings_error = true; } } /** * Try to create a CDN instance */ try { // Create new instance if (check_cdn() == false) { $show_errors[] = 'Could not create instance of class RS_CDN.'; } // Check if connection has been made by grabbing container if (!isset($_SESSION['cdn']) || !is_object($_SESSION['cdn']) || is_null($_SESSION['cdn']) || is_null($_SESSION['cdn']->container_object())) { $show_errors[] = 'Container does not exist.'; } } catch (Exception $exc) { if (stripos($exc, 'Unauthorized') !== false) { $show_errors[] = 'Unable to connect to the CDN, please check the credentials below.'; } else { $show_errors[] = $exc; } } /** * Assign API settings
/** * Get list of CDN objects */ public function get_cdn_objects($force_cache = false) { // Ensure CDN instance exists if (check_cdn() === false) { return array(); } // Path to cache file $cache_file_path = RS_CDN_PATH . 'object_cache'; // Set array to store CDN objects $cdn_objects = array(); // Check if caching is enabled if ($force_cache === true || !is_writable(RS_CDN_PATH) || !is_writable($cache_file_path)) { // Update object cache try { $objects = $this->container_object()->objectList(); } catch (Exception $exc) { return array(); } // Setup objects $cdn_objects = array(); foreach ($objects as $object) { $cdn_objects[] = array('fn' => $object['name'], 'fs' => $object['bytes']); } // Write files to cache file if (is_writable(RS_CDN_PATH) && is_writable($cache_file_path)) { // Write to cache file file_put_contents($cache_file_path, json_encode($cdn_objects)); } // Return CDN objects return $cdn_objects; } else { // Return caching return json_decode(file_get_contents($cache_file_path), true); } }