jayvee/aws

该包最新版本(dev-master)没有可用的许可信息。

TYPO3 Flow的亚马逊网络服务集成

安装: 6

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:typo3-flow-package

dev-master 2015-10-07 16:23 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:49:16 UTC


README

此包为您提供新的TYPO3 Flow资源管理中S3资源存储和发布目标。它还附带了一个方便的小工厂,您可以使用它轻松地创建各种服务的客户端。

警告 此包仍在开发中。配置选项可能会更改,某些功能可能无法按预期工作。请勿在生产环境中使用。

安装

只需将jayvee/aws包作为需求添加到您的根composer.json中,然后运行composer update以安装此包。

配置

设置您的AWS凭据

推荐的身份验证方法是使用实例配置文件凭据或环境变量。有关如何设置这些的更多信息,请参阅AWS用户指南。如果您无法使用这些身份验证方法,您也可以在包的Settings.yaml中设置您的凭据。

Jayvee:
  Aws:
    sdk:
      credentials:
        key: <access_key>
        secret: <secret_key>
      region: <preferred_region>

还有一个选项可以设置您首选的AWS区域,如果未设置,则默认为eu-east-1

资源存储

资源存储和发布目标可以在TYPO3 Flow包的设置中定义。要简单地将S3存储桶设置为资源存储,只需做以上操作。如果指定的S3存储桶不存在,存储将尝试创建它(同样适用于发布目标)。

TYPO3:
  Flow:
    resource:
      storages:
        s3PersistentResourcesStorage:
          storage: 'Jayvee\Aws\Resource\Storage\S3Storage'
          storageOptions:
            bucketName: '<bucket_name>'

存储无需进一步配置,您可以使用上述配置开始使用。

发布目标

您可以直接从S3存储桶或使用额外的CloudFront支持将其用作CDN来发布您的资源。如果您只想从S3提供服务,以下配置将完成此任务。

TYPO3:
  Flow:
    resource:
      targets:
        s3PersistentResourcesTarget:
          target: 'Jayvee\Aws\Resource\Target\S3Target'
          targetOptions:
            bucketName: '<bucket_name>'

注意: 您可以将一个存储桶同时用作存储和发布目标。资源默认存储为ACL私有,发布时设置为public-read。如果您使用不同的存储桶,资源将复制到定义为发布目标的存储桶。

添加CloudFront支持

要使用CloudFront而不是直接从S3存储桶提供服务,请使用cloudFront选项添加您想使用的分发的标识符。由于创建分发是一个耗时较长的任务,您将必须自己设置它,并将S3存储桶设置为它的源,例如通过AWS控制台。

TYPO3:
  Flow:
    resource:
      targets:
        s3PersistentResourcesTarget:
          target: 'Jayvee\Aws\Resource\Target\S3Target'
          targetOptions:
            bucketName: '<bucket_name>'
            cloudFront:
              distributionIdentifier: '<distribution>

目标将读取您的分发配置,并自动使用可用的源访问身份。请注意,您不需要为源访问身份设置存储桶策略,因为权限是按对象授予的。

故障排除

在资源发布过程中,您可能会收到以下错误

An error occurred while publishing resources (see full description below). You can check and probably fix the integrity of the resource registry by using the resource:clean command.
TYPO3\Flow\Error\Exception (Exception code: 1)
Warning: file_put_contents(/tmp/aws-cache/data_s3_2006-03-01_paginators-1.json.php): failed to open stream: Permission denied in {...}/Packages/Libraries/aws/aws-sdk-php/src
/JsonCompiler.php line 93

这很可能是由于AWS SDK的缓存目录权限不正确引起的。只需更改权限或编辑AWS_PHP_CACHE_DIR环境变量以使用另一个目录。更详细的描述可以在AWS SDK for PHP常见问题解答中找到。

接下来是什么?

以下功能已计划并即将推出

  • 更多CloudFront选项,例如使用CNAME或资源下线时发送无效化请求
  • 在存储和发布目标上配置缓存选项