Last activity 02 Mar 2023 7436
composer require sitegeist/flowakamainetstorage

Sitegeist Flow Akamai NetStorage Connector

This Flow package allows you to store assets (resources) in Akamai's NetStorage. It enables you to use Akamai NetStorage as a Storage or a Target in your Neos Project.

It uses the Akamai PHP Storagekit

Authors & Sponsors

The development and the public-releases of this package is generously sponsored by


  • storage implementation of the WritableStorageInterface
  • target implementation of the TargetInterface
  • commands to be run via ./flow e.g. to test your configuration and connectivity

With this connector you can run a Neos website without storing asset (images, PDFs etc.) on your local webserver.


The connector is installed as a Flow package via Composer. For your existing project, simply include [TODO -> correct package name from packagist] into the dependencies of your Flow or Neos distribution:

composer require [TODO]


To be able to use Akamai NetStorage you have to configure your credentials in your storageOptions and your targetOptions in your Settings.yaml. For more Information on how to configure Neos check out the docs of the Flow ResourceManagement

          storage: 'Sitegeist\Flow\AkamaiNetStorage\AkamaiStorage'
            host: ''
            key: 'YOUR-KEY-HERE'
            keyName: 'KEY-NAME-HERE'
            cpCode: 'YOUR-CP-CODE-HERE'
            restrictedDirectory: 'functional-testcase-storage'
            workingDirectory: 'storage'
          target: 'Sitegeist\Flow\AkamaiNetStorage\AkamaiTarget'
            host: ''
            staticHost: 'YOUR-STATIC-HOST-HERE'
            key: 'YOUR-KEY-HERE'
            keyName: 'KEY-NAME-HERE'
            cpCode: 'YOUR-CP-CODE-HERE'
            restrictedDirectory: 'functional-testcase-storage'
            workingDirectory: 'target'
          storage: 'akamaiPersistentResourcesStorage'
          target: 'akamaiPersistentResourcesTarget'
  • host- The host of the API
  • proxy- The proxy to use (if needed)
  • staticHost - The host for providing static content
  • key - The internally-generated Akamai Key. This is the value used when provisioning access to the API.
  • keyName - The name ("Id") of an Upload Account provisioned to access the target Storage Group. It can be gathered from the Luna Control Center.
  • cpCode - The unique CP Code that represents the root directory in the applicable NetStorage Storage Group
  • restrictedDirectory - Path with additional sub-directories that the $key is restricted to
  • workingDirectory - The directory, that you want to store files in, e.g. "storage" or "target" You need to use different working directories when configuring your storage and target.

Do not forget to replace the upper case characters with your configuration.

IMPORTANT: for all paths do Not use leading or trailing slashes!

You can test your configuration by executing the connect command:

./flow akamai:connect

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

target connection is working

Running Tests

For running the tests you need an Akamai account and credentials to access NetStorage. According to our understanding Akamai does not seem to provide developer accounts. -> Akamai Forum - Is there developer account for testing Open API ?

Please adjust the Settings.yaml as follows to configure the Akamai storages for running the tests:

          host: ''
          staticHost: 'YOUR-STATIC-HOST-HERE'
          key: 'YOUR-KEY-HERE'
          keyName: 'KEY-NAME-HERE'
          cpCode: 'YOUR-CP-CODE-HERE'
          restrictedDirectory: 'functional-testcase-storage'

Do not forget to replace the upper case characters with your staging config before running the tests.

ffunctionaltest Tests/Functional

Further Reading

The content of the readme is provided by Github
The same vendor provides 48 package(s).