/** * Flushes CDN completely */ function flush_all() { if (empty($this->access_key) || empty($this->secret_key) || empty($this->distribution_id)) { throw new \Exception(__('Access key not specified.', 'w3-total-cache')); } $api = new Cdn_CloudFrontFsd_Api($this->access_key, $this->secret_key); $uris = array('/*'); $api->invalidation_create($this->distribution_id, $uris); }
public function w3tc_ajax_cdn_cloudfront_fsd_configure_distribution() { $access_key = $_REQUEST['access_key']; $secret_key = $_REQUEST['secret_key']; $distribution_id = Util_Request::get('distribution_id', ''); $origin_id = rand(); $distribution = array('Comment' => Util_Request::get('distribution_comment'), 'Origins' => array('Quantity' => 1, 'Items' => array('Origin' => array('Id' => $origin_id, 'DomainName' => Util_Request::get('origin'), 'OriginPath' => '', 'CustomOriginConfig' => array('HTTPPort' => 80, 'HTTPSPort' => 443, 'OriginProtocolPolicy' => 'match-viewer')))), 'Aliases' => array('Quantity' => 1, 'Items' => array('CNAME' => Util_Request::get('alias'))), 'DefaultCacheBehavior' => array('TargetOriginId' => $origin_id, 'ForwardedValues' => array('QueryString' => 'true', 'Cookies' => array('Forward' => 'all'), 'Headers' => array('Quantity' => 1, 'Items' => array('Name' => 'Host'))), 'AllowedMethods' => array('Quantity' => 7, 'Items' => array('Method' => array('GET', 'HEAD', 'OPTIONS', 'PUT', 'POST', 'PATCH', 'DELETE')), 'CachedMethods' => array('Quantity' => 2, 'Items' => array('Method' => array('GET', 'HEAD')))), 'MinTTL' => 0)); try { $api = new Cdn_CloudFrontFsd_Api($access_key, $secret_key); if (empty($distribution_id)) { $distribution['DefaultCacheBehavior']['TrustedSigners'] = array('Enabled' => 'false', 'Quantity' => 0); $distribution['DefaultCacheBehavior']['ViewerProtocolPolicy'] = 'allow-all'; $response = $api->distribution_create($distribution); $distribution_id = $response['Id']; } else { $response = $api->distribution_update($distribution_id, $distribution); } } catch (\Exception $ex) { $this->render_intro(array('error_message' => 'Failed to configure distribution: ' . $ex->getMessage())); exit; } $distribution_domain = $response['DomainName']; $c = Dispatcher::config(); $c->set('cdn.cloudfront_fsd.access_key', $access_key); $c->set('cdn.cloudfront_fsd.secret_key', $secret_key); $c->set('cdn.cloudfront_fsd.distribution_id', $distribution_id); $c->set('cdn.cloudfront_fsd.distribution_domain', $distribution_domain); $c->save(); $details = array('name' => $distribution['Comment'], 'home_domain' => Util_Environment::home_url_host(), 'dns_cname_target' => $distribution_domain); include W3TC_DIR . '/Cdn_CloudFrontFsd_Popup_View_Success.php'; exit; }