适用于 PHP 的 AWS 开发工具包
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 CloudFront API 和AWS SDK for PHP版本 3 管理 Amazon CloudFront 失效

Amazon CloudFront 将静态和动态文件的副本缓存在全球边缘站点中。要在所有边缘站点上删除或更新文件,请为每个文件或一组文件创建失效。

每个日历月中,您的前 1,000 个失效是免费的。要了解有关从 CloudFront 边缘站点删除内容的更多信息,请参阅使文件失效

以下示例演示如何:

GitHub 上的此处提供了AWS SDK for PHP版本 3 的所有示例代码。

凭证

在运行示例代码之前,您需要配置 AWS 凭证,如适用于 PHP 的 AWS 开发工具包版本 3 的凭证中所述。然后导入AWS SDK for PHP,如适用于 PHP 的 AWS 开发工具包版本 3 的基本使用模式中所述。

有关使用 Amazon CloudFront 的更多信息,请参阅 Amazon CloudFront 开发人员指南

创建分配失效

通过指定需要删除的文件的路径位置来创建 CloudFront 分配失效。此示例将使分配中的所有文件均失效,但您可以在 Items 下标识特定文件。

要创建 CloudFront 分配失效,请使用 CreateInvalidation 操作。

导入

require 'vendor/autoload.php'; use Aws\CloudFront\CloudFrontClient; use Aws\Exception\AwsException;

示例代码

// Create a CloudFront Client $client = new Aws\CloudFront\CloudFrontClient([ 'profile' => 'default', 'version' => '2018-06-18', 'region' => 'us-east-2' ]); $id = 'E1A2B3C4D5E'; $callerReference = 'STRING'; try { $result = $client->createInvalidation([ 'DistributionId' => $id, 'InvalidationBatch' => [ 'CallerReference' => $callerReference, 'Paths' => [ 'Items' => ['/*'], 'Quantity' => 1, ], ] ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

获取分配失效

要检索有关 CloudFront 分配失效的状态和详细信息,请使用 GetInvalidation 操作。

导入

require 'vendor/autoload.php'; use Aws\CloudFront\CloudFrontClient; use Aws\Exception\AwsException;

示例代码

$client = new Aws\CloudFront\CloudFrontClient([ 'profile' => 'default', 'version' => '2018-06-18', 'region' => 'us-east-2' ]); $distributionId = 'E1A2B3C4D5E'; $invalidationID = 'I1A2B3C4D5E6F7G'; try { $result = $client->getInvalidation([ 'DistributionId' => $distributionId, 'Id' => $invalidationID, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

列出分配失效

要列出所有当前的 CloudFront 分配失效,请使用 ListInvalidations 操作。

导入

require 'vendor/autoload.php'; use Aws\CloudFront\CloudFrontClient; use Aws\Exception\AwsException;

示例代码

$client = new Aws\CloudFront\CloudFrontClient([ 'profile' => 'default', 'version' => '2018-06-18', 'region' => 'us-east-2' ]); $distributionId = 'E1A2B3C4D5E'; try { $result = $client->listInvalidations([ 'DistributionId' => $distributionId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }