leuchtfeuer/aws-tools

此扩展将您的TYPO3实例连接到Amazon CloudFront。它将前端中的所有文件路径重写以匹配您的CDN域名。您还可以选择使Amazon CloudFront条目无效。

资助包维护!
www.Leuchtfeuer.com

安装次数: 14,149

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 6

分支: 5

开放性问题: 2

类型:typo3-cms-extension

v12.0.1 2024-09-18 08:52 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version Code Climate License

此扩展将您的TYPO3实例连接到Amazon CloudFront。它将前端中的所有文件路径重写以匹配您的CDN域名。您还可以在多个位置选择使Amazon CloudFront条目无效。完整的文档可以在此处找到。

安装

有多种方式可以要求并安装此扩展。我们建议通过composer获取此扩展。

通过Composer

如果您的TYPO3实例正在以composer模式运行,您可以通过运行以下命令简单地要求扩展:

composer req leuchtfeuer/aws-tools

通过扩展管理器

打开您的TYPO3实例的扩展管理器模块,在上传按钮上方的选择菜单中选择“获取扩展”。在那里您可以搜索“aws_tools”并简单安装扩展。请确保在安装AWS Tools扩展之前更新扩展列表,以使用扩展的最新版本。

通过ZIP存档

您需要从TYPO3扩展存储库(TER)下载AWS Tools扩展,并将zip文件上传到您的TYPO3实例的扩展管理器,然后激活扩展。

配置

要激活内容分发网络(CDN)并能够使Amazon CloudFront条目无效,需要执行几个设置,这些设置必须在不同的地方(TypoScript、站点配置、扩展配置等)执行。

站点配置

在页面配置的语言配置中可以启用和配置内容分发网络(CDN)(无论是否使用Amazon CloudFront)。可以按域名和语言启用或禁用CDN。

CDN Settings within the Site Configuration

重写文件路径

所有指向位于资源存储(fileadmin等)中的资产的路径都由TYPO3界面自动重写。由于并非所有文件都通过此机制“获取”,因此TypoScript设置中配置的文件路径(例如指向单独站点扩展中的样式表、JavaScript和字体)将由正则表达式重写。

config.tx_awstools {
    enabled = 1

    patterns {
        10 {
            search = "/typo3temp/
            replace = "%s/typo3temp/
        }

        20 {
            search = "/typo3conf/
            replace = "%s/typo3conf/
        }
    }

    replacer {
        eventListener = 1
        middleware = 1
    }
}

可以通过任何数量的附加条目扩展“模式”选项。每个属性必须具有“搜索”和“替换”键。在“替换”属性中的%s将被之前配置的CDN域名替换。

请注意“搜索”和“替换”值中的引号。页面HTML源代码将搜索此模式,因此它适用于例如href="/typo3temp/assets/...。如果模式不包括引号,这会导致严重错误,因为像href="https://cdn.example.com/typo3temp/assets/"这样的链接将被重写为https://cdn.example.comhttps://cdn.example.com/typo3temp/assets/

此外,可以使用值config来禁用内容替换。这将禁用前端中的路径重写。

存在两种替换机制,可以通过replacer选项单独启用/禁用。 middleware负责重写由TYPO3生成的HTML主体中的URL。它只重写HTML代码中的域名。如果渲染HTML之前需要CDN域名,可以使用eventListener选项,该选项通过钩子连接到GeneratePublicUrlForResourceEvent,并在生成资源的公共URL时直接重写域名。

扩展配置

在扩展配置中,您需要输入AWS账户的访问数据(访问密钥ID和密钥)。此外,您必须选择请求应运行在哪个区域以使AWS服务器失效条目。在CloudFront选项卡上,您可以指定一个逗号分隔的列表,其中存储了您的资产。

AWS Tools extension configuration

请注意所有条目总是在所有配置的分发中同时失效。

使Amazon CloudFront条目失效

Amazon CloudFront条目可以自动部分失效,或由用户或命令行调用手动声明为无效。

Symfony命令(仅限CLI)

可以通过CLI调用使Amazon CloudFront条目失效。该命令期望一个或多个路径(文件或文件夹的路径)。

vendor/bin/typo3cms aws:cf:invalidate PATH_1 PATH_2 [...] PATH_X

可以在部署后执行此命令。此命令作为调度任务不可用。

文件列表模块

可以使用文件列表模块使Amazon CloudFront条目失效。根据用户权限(见下文),可以失效文件或整个路径。

Invalidate entries in the File List module

访问保护

需要适当的权限,以便用户可以使Amazon CloudFront条目失效。权限可以在后端组或用户数据记录中授予(invalidateFileinvalidateFolder)。

Configure permissions for users or groups

管理员可以在没有进一步权限的情况下使条目失效。

覆盖时的自动失效

在文件列表模块中覆盖现有文件后,Amazon CloudFront条目将自动失效,无论用户的授权如何。

后端模块

专用后端模块(仅管理员可访问)提供了另一种使Amazon CloudFront条目失效的可能性。该模块还列出对AWS服务器发出的最后十个请求(每个分发)。

Backend view of the AWS Tools module

Backend view of the AWS Tools module after invalidating entries