andersundsehr / aus-driver-amazon-s3
为Amazon Web Service AWS S3提供FAL驱动程序。
Requires
- php: >=7.4
- aws/aws-sdk-php: ^3.278
- typo3/cms-core: ^11.5.6 || ^12.4.5
Requires (Dev)
- phpspec/prophecy: dev-master
- phpspec/prophecy-phpunit: dev-master
- pluswerk/grumphp-config: ^5.0
- saschaegerer/phpstan-typo3: ^1.8.9
- ssch/typo3-rector: ^1.3.5
- typo3/testing-framework: ^7.0
Replaces
- typo3-ter/aus-driver-amazon-s3: 1.13.0
- typo3-ter/aus_driver_amazon_s3: 1.13.0
- dev-master
- 1.13.0
- v1.13.0beta1
- 1.12.1
- 1.12.0
- 1.11.1
- 1.11.0
- 1.10.0
- 1.9.0
- 1.8.0
- 1.7.1
- 1.7.0
- 1.6.0
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.0
- 1.3.3
- 1.3.2
- dev-bugfix/redis-cache-backend
- dev-feature/raise-dependencies
- dev-bugfix/add-metadata-if-needed
- dev-bugfix/mime-detection
- dev-bugfix/deadlink-readme
- dev-feature/performance-improvements-caching
- dev-task/fixTests
- dev-118-shouldnt-this-driver-implement-capability_hierarchical_identifiers
This package is auto-updated.
Last update: 2024-09-18 08:58:53 UTC
README
TYPO3扩展:Amazon AWS S3 FAL驱动程序(CDN)
这是一个文件抽象层(FAL)的驱动程序,以支持Amazon AWS S3。
您可以创建一个文件存储,允许您上传/下载文件并将其链接到AWS S3存储桶。它还支持TYPO3 CMS图像渲染。
需要TYPO3 11.5 - 12.4
Packagist:andersundsehr/aus-driver-amazon-s3
安装
- 通过composer安装TYPO3扩展(推荐)或通过TER安装扩展(不再推荐)。
Composer安装
composer require andersundsehr/aus-driver-amazon-s3
- 在根页面(pid = 0)添加一个新的带有“AWS S3”驱动程序的文件存储。
- 配置您的文件存储
配置
驱动程序配置
添加以下配置
- 存储桶:您的AWS S3存储桶名称
- 区域:存储桶所在的区域(存储桶名称中避免使用点)
- 您的AWS账户的密钥和密钥(可选,您也可以使用IAM角色或环境变量)
- 公共基础URL(可选):这是您的存储桶的公共URL,如果为空,则默认为“bucketname.s3.amazonaws.com”
- 协议:网络协议(https://, http://或自动检测)
提示:Amazon AWS S3存储桶配置
确保您的AWS S3存储桶对公共网络用户可访问。
例如,在“编辑存储桶策略”中添加以下默认权限
示例权限
{ "Version": "2008-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::bucketname/*" } ] }
扩展配置
在“扩展管理器”中编辑以下扩展设置
- dnsPrefetch 使用DNS预加载标签:如果启用,将包含一个HTML标签,该标签将预加载当前CDN的DNS
- doNotLoadAmazonLib 不加载Amazon AWS PHP SDK:如果启用,您必须自己包含SDK! (http://aws.amazon.com/de/sdk-for-php/)
- enablePermissionsCheck 检查每个文件和文件夹的S3权限。默认情况下,此功能被禁用,因为它非常慢(TYPO3必须为每个文件发出AWS请求)
缓存配置
自定义TYPO3缓存后端
ausdriveramazons3_metainfocache
根据每个对象保留AWS S3上的元数据。ausdriveramazons3_requestcache
存储特定请求的完整响应,便于高效数据访问和性能提升。
默认情况下,这些缓存是瞬时的。但是,如果您选择配置持久化缓存后端,请务必记住,此类缓存不会自动识别数据源的变化。在这种情况下,您必须手动实施必要的更新。
有关如何自定义这些缓存后端的详细说明,请参阅TYPO3 CachingFramework配置指南。请记住,修改缓存后端时进行彻底测试至关重要。
扩展扩展
初始化S3客户端
如果您使用自己的Amazon AWS SDK,您可能希望使用自己的S3客户端对象。
因此,您必须在您的ext_localconf.php中使用以下钩子
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['aus_driver_amazon_s3']['initializeClient-preProcessing'][] = \Vendor\ExtensionName\Hooks\AmazonS3DriverHook::class . '->initializeClient';
钩子类可能看起来像这样
namespace Vendor\ExtensionName\Hooks; class AmazonS3DriverHook { public function initializeClient(array &$params, $obj){ $params['s3Client'] = MyAwsFactory::getAwsS3Client($params['configuration']); } }
初始化公共基础URL
您可以在驱动程序(TYPO3后端)的配置中设置公共基本URL。但也许您想在其他位置设置它。
因此,您必须在您的ext_localconf.php中使用以下钩子
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['aus_driver_amazon_s3']['initializeBaseUrl-postProcessing'][] = \Vendor\ExtensionName\Hooks\AmazonS3DriverHook::class . '->initializeBaseUrl';
钩子类可能看起来像这样
namespace Vendor\ExtensionName\Hooks; class AmazonS3DriverHook { public function initializeBaseUrl(array &$params, $obj){ $params['baseUrl'] = 'https://example.com'; } }
缓存控制头
有一个默认设置来设置所有文件类型的缓存控制头最大年龄。如果您想使用特殊的缓存头,可以使用此钩子
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['aus_driver_amazon_s3']['getCacheControl'][] = 'Vendor\ExtensionName\Hooks\AmazonS3DriverHook->getCacheControl';
您可以根据需要修改“cacheControl”参数。请注意:AWS S3在上传/创建或复制文件时仅设置一次缓存头。
更多
如果您想使用其他钩子 - 不要害羞:GitHub问题跟踪:Amazon S3 FAL驱动程序