set_distribution_config ( $distribution_id, $xml, $etag, $opt )

Sets a new distribution configuration for the specified distribution ID.

Standard distributions are handled separately from streaming distributions. For streaming distributions, set the Streaming option to true.

Access

public

Parameters

Parameter

Type

Required

Description

$distribution_id

string

Required

The distribution ID returned from create_distribution() or list_distributions().

$xml

string

Required

The DistributionConfig XML generated by generate_config_xml() or update_config_xml().

$etag

string

Required

The ETag header value retrieved from get_distribution_config().

$opt

array

Optional

An associative array of parameters that can have the following keys:

  • Streaming - boolean - Optional - Whether or not this should be for a streaming distribution. A value of true will create a streaming distribution. A value of false will create a standard distribution. The default value is false.
  • curlopts - array - Optional - A set of values to pass directly into curl_setopt(), where the key is a pre-defined CURLOPT_* constant.
  • returnCurlHandle - boolean - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.

Returns

Type

Description

CFResponse

A CFResponse object containing a parsed HTTP response.

Examples

Update a standard distribution configuration.

$cdn = new AmazonCloudFront();

// Pull existing config XML...
$existing_xml = $cdn->get_distribution_config('E2L6A3OZHQT5W4');

// Was the request successful?
if ($existing_xml->isOK())
{
	// Generate an updated XML config...
	$updated_xml = $cdn->update_config_xml($existing_xml, array(
		'Enabled' => false
	));

	// Fetch an updated ETag value
	$etag = $cdn->get_distribution_config('E2L6A3OZHQT5W4')->header['etag'];

	// Set the updated config XML to the distribution.
	$response = $cdn->set_distribution_config('E2L6A3OZHQT5W4', $updated_xml, $etag);

	// Success?
	var_dump($response->isOK());
}
Result:
bool(true)

Update a streaming distribution configuration.

$cdn = new AmazonCloudFront();

// Pull existing config XML...
$existing_xml = $cdn->get_distribution_config('E2L6A3OZHQT5W4', array(
	'Streaming' => true
));

// Was the request successful?
if ($existing_xml->isOK())
{
	// Generate an updated XML config...
	$updated_xml = $cdn->update_config_xml($existing_xml, array(
		'Enabled' => false,
		'Streaming' => true,
		'CachingBehavior' => array(
			'MinTTL' => '30 minutes',
		),
	));

	// Fetch an updated ETag value
	$etag = $existing_xml->header['etag'];

	// Set the updated config XML to the distribution.
	$response = $cdn->set_distribution_config('E2L6A3OZHQT5W4', $updated_xml, $etag, array(
		'Streaming' => true
	));

	// Success?
	var_dump($response->isOK());
}
Result:
bool(true)

Related Methods

See Also

Source

Method defined in services/cloudfront.class.php | Toggle source view (11 lines) | View on GitHub

public function set_distribution_config($distribution_id, $xml, $etag, $opt = null)
{
    if (!$opt) $opt = array();

    $path = '/' . ((isset($opt['Streaming']) && $opt['Streaming'] == (bool) true) ? 'streaming-distribution' : 'distribution');
    $path .= '/' . $distribution_id . '/config';

    $opt = array_merge($opt, array('path' => $path, 'xml' => $xml, 'etag' => $etag));

    return $this->authenticate('PUT', $opt);
}

Copyright © 2010–2013 Amazon Web Services, LLC


Feedback