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
- Florian Heinze - firstname.lastname@example.org
The development and the public-releases of this package is generously sponsored by http://www.sitegeist.de.
- storage implementation of the
- target implementation of the
- commands to be run via
./flowe.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
Settings.yaml. For more Information on how to configure Neos check out the docs of the
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- 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:
Please specify the required argument "collectionName": persistent storage connection is working true target connection is working true
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:
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'
Do not forget to replace the upper case characters with your staging config before running the tests.