sitegeist/flowakamainetstorage

此包最新版本(v2.0.2)没有提供许可证信息。

v2.0.2 2023-03-02 11:01 UTC

README

此Flow包允许您在Akamai的NetStorage中存储资源(资产)。它使您能够在Neos项目中将Akamai NetStorage用作存储或目标。

它使用Akamai PHP Storagekit

作者和赞助商

此包的开发和公共发布得到了http://www.sitegeist.de的慷慨赞助。

功能

  • WritableStorageInterface的存储实现
  • TargetInterface的目标实现
  • 通过./flow运行的可执行命令,例如测试您的配置和连接
  • 清理文件夹以删除旧资产(对于部署后脚本很有用)

使用此连接器,您可以在不将资产(图像、PDF等)存储在本地Web服务器的情况下运行Neos网站。

安装

该连接器通过Composer作为Flow包安装。对于您的现有项目,只需将[待完善 -> 从Packagist获取正确的包名]包含到您的Flow或Neos分布的依赖项中

composer require [待完善]

配置

要使用Akamai NetStorage,您必须在Settings.yaml中的storageOptionstargetOptions中配置您的凭证。有关如何配置Neos的更多信息,请参阅Flow资源管理的文档

Neos:
  Flow:
    resource:
      storages:
        akamaiPersistentResourcesStorage:
          storage: 'Sitegeist\Flow\AkamaiNetStorage\AkamaiStorage'
          storageOptions:
            host: 'YOURHOST-HERE.akamaihd.net'
            key: 'YOUR-KEY-HERE'
            keyName: 'KEY-NAME-HERE'
            cpCode: 'YOUR-CP-CODE-HERE'
            restrictedDirectory: 'functional-testcase-storage'
            workingDirectory: 'storage'
      targets:
        akamaiPersistentResourcesTarget:
          target: 'Sitegeist\Flow\AkamaiNetStorage\AkamaiTarget'
          targetOptions:
            host: 'YOURHOST-HERE.akamaihd.net'
            staticHost: 'YOUR-STATIC-HOST-HERE'
            key: 'YOUR-KEY-HERE'
            keyName: 'KEY-NAME-HERE'
            cpCode: 'YOUR-CP-CODE-HERE'
            restrictedDirectory: 'functional-testcase-storage'
            workingDirectory: 'target'
      collections:
        persistent:
          storage: 'akamaiPersistentResourcesStorage'
          target: 'akamaiPersistentResourcesTarget'
  • host- API的主机
  • proxy- 需要时使用的代理
  • staticHost - 提供静态内容的主机
  • key - 内部生成的Akamai密钥。这是在提供对API访问时使用的值。
  • keyName - 为访问目标存储组而配置的上传账户的名称(“Id”)。可以从Luna控制中心收集。
  • cpCode - 代表适用的NetStorage存储组根目录的唯一CP代码
  • restrictedDirectory - $key受限制的路径,包含附加的子目录
  • workingDirectory - 您想要存储文件的目录,例如“storage”或“target”。在配置存储和目标时,您需要使用不同的工作目录。

不要忘记将大写字母替换为您的配置。

重要:对于所有路径,不要使用前导或尾随斜杠!

您可以通过执行连接命令来测试您的配置

./flow akamai:connect

Please specify the required argument "collectionName": persistent
storage connection is working
true

target connection is working
true

配置通用连接

除了将Akamai用作Neos的资产源之外,您还可以配置通用连接。这用于CLI工具akamai:listakamai:cleanup

配置如下

Sitegeist:
  Flow:
    AkamaiNetStorage:
      options:
        host: 'YOURHOST-HERE.akamaihd.net'
        staticHost: 'YOUR-STATIC-HOST-HERE'
        key: 'YOUR-KEY-HERE'
        keyName: 'KEY-NAME-HERE'
        cpCode: 'YOUR-CP-CODE-HERE'
        restrictedDirectory: 'YOUR-RESTRICTED-DIRECTORY-HERE'

列出内容

使用Flow CLI工具,您可以列出特定文件夹的内容

./flow akama:list --working-directory <directory>

在组合文件夹时将考虑restrictedDirectory

清理

如果您在部署步骤中使用Akamai进行静态资产,最终将会有旧资产。

自动清理这些资产的辅助工具是akama:cleanup脚本

./flow akamai:cleanup --working-directory static --keep 10

这将删除 --working-directory 中的文件夹,并仅保留由 --keep 参数给出的数量。

这可以在构建后步骤中使用。

运行测试

要运行测试,您需要一个 Akamai 账户以及访问 NetStorage 的凭据。根据我们的理解,Akamai 似乎不提供开发者账户。-> Akamai 论坛 - 是否有用于测试 Open API 的开发者账户?

请按照以下方式调整 Settings.yaml 以配置 Akamai 存储以运行测试

Sitegeist:
  Flow:
    AkamaiNetStorage:
      functionalTests:
        storageOptions:
          host: 'YOURHOST-HERE.akamaihd.net'
          staticHost: 'YOUR-STATIC-HOST-HERE'
          key: 'YOUR-KEY-HERE'
          keyName: 'KEY-NAME-HERE'
          cpCode: 'YOUR-CP-CODE-HERE'
          restrictedDirectory: 'functional-testcase-storage'

在运行测试之前,不要忘记用您的预发布配置替换大写字母。

ffunctionaltest Tests/Functional

进一步阅读