leuchtfeuer / aws-tools
此扩展将您的TYPO3实例连接到Amazon CloudFront。它将前端中的所有文件路径重写以匹配您的CDN域名。您还可以选择使Amazon CloudFront条目无效。
Requires
- aws/aws-sdk-php: ^3.149
- typo3/cms-backend: ^12.4
- typo3/cms-core: ^12.4
- typo3/cms-extbase: ^12.4
Replaces
- typo3-ter/aws-tools: v12.0.1
This package is auto-updated.
Last update: 2024-09-18 08:59:56 UTC
README
此扩展将您的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。
重写文件路径
所有指向位于资源存储(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选项卡上,您可以指定一个逗号分隔的列表,其中存储了您的资产。
请注意所有条目总是在所有配置的分发中同时失效。
使Amazon CloudFront条目失效
Amazon CloudFront条目可以自动部分失效,或由用户或命令行调用手动声明为无效。
Symfony命令(仅限CLI)
可以通过CLI调用使Amazon CloudFront条目失效。该命令期望一个或多个路径(文件或文件夹的路径)。
vendor/bin/typo3cms aws:cf:invalidate PATH_1 PATH_2 [...] PATH_X
可以在部署后执行此命令。此命令作为调度任务不可用。
文件列表模块
可以使用文件列表模块使Amazon CloudFront条目失效。根据用户权限(见下文),可以失效文件或整个路径。
访问保护
需要适当的权限,以便用户可以使Amazon CloudFront条目失效。权限可以在后端组或用户数据记录中授予(invalidateFile
或invalidateFolder
)。
管理员可以在没有进一步权限的情况下使条目失效。
覆盖时的自动失效
在文件列表模块中覆盖现有文件后,Amazon CloudFront条目将自动失效,无论用户的授权如何。
后端模块
专用后端模块(仅管理员可访问)提供了另一种使Amazon CloudFront条目失效的可能性。该模块还列出对AWS服务器发出的最后十个请求(每个分发)。