public static function invalidateDistribution($distributionId, $paths)
	{
		if (!extension_loaded('openssl'))
		{
			self::__triggerError(sprintf("S3::invalidateDistribution(): [%s] %s",
			"CloudFront functionality requires SSL"), __FILE__, __LINE__);
			return false;
		}

		$useSSL = self::$useSSL;
		self::$useSSL = true; // CloudFront requires SSL
		$rest = new S3Request('POST', '', '2010-08-01/distribution/'.$distributionId.'/invalidation', 'cloudfront.amazonaws.com');
		$rest->data = self::__getCloudFrontInvalidationBatchXML($paths, (string)microtime(true));
		$rest->size = strlen($rest->data);
		$rest = self::__getCloudFrontResponse($rest);
		self::$useSSL = $useSSL;

		if ($rest->error === false && $rest->code !== 201)
			$rest->error = array('code' => $rest->code, 'message' => 'Unexpected HTTP status');
		if ($rest->error !== false)
		{
			trigger_error(sprintf("S3::invalidate('{$distributionId}',{$paths}): [%s] %s",
			$rest->error['code'], $rest->error['message']), E_USER_WARNING);
			return false;
		}
		return true;
	}
public static function invalidateDistribution($distributionId, $paths)
	{
		if (!extension_loaded('openssl'))
		{
			self::__triggerError(sprintf("S3::invalidateDistribution(): [%s] %s",
			"CloudFront functionality requires SSL"), __FILE__, __LINE__);
			return false;
		}

		$useSSL = self::$useSSL;
		self::$useSSL = true; // CloudFront requires SSL
		$rest = new S3Request('POST', '', '2010-08-01/distribution/'.$distributionId.'/invalidation', 'cloudfront.amazonaws.com');
		$rest->data = self::__getCloudFrontInvalidationBatchXML($paths, (string)microtime(true));
		$rest->size = strlen($rest->data);
		$rest = self::__getCloudFrontResponse($rest);
		self::$useSSL = $useSSL;

		if ($rest->error === false && $rest->code !== 201)
			$rest->error = array('code' => $rest->code, 'message' => 'Unexpected HTTP status');
		if ($rest->error !== false)
		{
			trigger_error(sprintf("S3::invalidate('{$distributionId}',{$paths}): [%s] %s",
			$rest->error['code'], $rest->error['message']), E_USER_WARNING);
			return false;
		}
		return true;
	}
public static function invalidateDistribution ( $ distributionId , $ paths ) { if ( ! extension_loaded ( 'openssl' ) ) { self :: __triggerError ( sprintf ( "S3::invalidateDistribution(): [%s] %s" , "CloudFront functionality requires SSL" ) , __FILE__ , __LINE__ ) ; return false ; } $ useSSL = self :: $ useSSL ; self :: $ useSSL = true ; // CloudFront requires SSL $ rest = new S3Request ( 'POST' , '' , '2010-08-01/distribution/' . $ distributionId . '/invalidation' , 'cloudfront.amazonaws.com' ) ; $ rest -> data = self :: __getCloudFrontInvalidationBatchXML ( $ paths , ( string ) microtime ( true ) ) ; $ rest -> size = strlen ( $ rest -> data ) ; $ rest = self :: __getCloudFrontResponse ( $ rest ) ; self :: $ useSSL = $ useSSL ; if ( $ rest -> error === false && $ rest -> code !== 201 ) $ rest -> error = array ( 'code' => $ rest -> code , 'message' => 'Unexpected HTTP status' ) ; if ( $ rest -> error !== false ) { trigger_error ( sprintf ( "S3::invalidate('{$distributionId}',{$paths}): [%s] %s" , $ rest -> error [ 'code' ] , $ rest -> error [ 'message' ] ) , E_USER_WARNING ) ; return false ; } return true ; }
Invalidate objects in a CloudFront distribution

Thanks to Martin Lindkvist for S3::invalidateDistribution()

@param string $distributionId Distribution ID from listDistributions()
@param array $paths Array of object paths to invalidate
@return boolean
Invalidate objects in a CloudFront distribution