
# Host Assets on Akamai NetStorage

:::info Enterprise Integration
Akamai NetStorage is an enterprise integration. Please contact us to enable this feature for your account.
:::

[Akamai NetStorage](https://techdocs.akamai.com/netstorage/docs/welcome-to-netstorage) is a managed, cloud-based
storage service that provides geographically replicated storage for your content. Upload your assets to a NetStorage
storage group and serve them globally via Akamai's edge network.

By using the Akamai NetStorage destination you can immediately send your assets to your own NetStorage storage group,
making it quick and easy to distribute your assets via Akamai's CDN.

### Setup

Sign up to Akamai and create a storage group with an upload account if you have not already set one up. You will need
your NetStorage HTTP domain name (hostname) and Content Provider (CP) code. Akamai credentials are required and must be
added via the Shotstack [dashboard](https://dashboard.shotstack.io).

The upload account must have the **NetStorage HTTP CMS API** access method enabled. Note that changes to upload accounts
can take 60-120 minutes to propagate across the NetStorage network.

### Adding credentials

Login to the dashboard and navigate to the [integrations](https://dashboard.shotstack.io/integrations) page, find the
Akamai NetStorage destination and click
[configure](https://dashboard.shotstack.io/integrations/akamai-netstorage).

Enter your credentials as shown. You can add different credentials for each Shotstack environment; sandbox and v1
(production).

### Integration

#### Basic integration

To send files to Akamai NetStorage add the following to the output parameter of a render request JSON payload, JSON
template or the root level of an ingest request:

```json
"destinations": [{
    "provider": "akamai-netstorage",
    "options": {
        "host": "example-nsu.akamaihd.net",
        "cpCode": "123456"
    }
}]
```

This will send the generated or ingested files to your NetStorage upload directory using the hostname
**example-nsu.akamaihd.net** and CP code **123456**. The filename will be the render id, source id or rendition id plus
extension, i.e. **edc47d30-a504-4f16-8439-24c863a7a782.mp4**. Thumbnail and poster images will also be transferred.

#### Advanced integration

You can also optionally set a remote directory path and custom file name:

```json
"destinations": [{
    "provider": "akamai-netstorage",
    "options": {
        "host": "example-nsu.akamaihd.net",
        "cpCode": "123456",
        "path": "videos",
        "filename": "my-video"
    }
}]
```

This will send the rendered files to the **videos** directory in your NetStorage upload directory. If the rendered file
is an mp4, the filename will be **my-video.mp4**.

When using a custom filename omit the file extension, i.e. .mp4 or .jpg. This will be added based on the rendered file
type. If a poster or thumbnail are created these will have **-poster.jpg** and **-thumbnail.jpg** appended.

### Opting out from the Shotstack destination

By default all generated files are sent to the Shotstack destination. If you are using Akamai NetStorage you may wish to
[opt out](../self-host.md) from hosting your videos with Shotstack using:

```json
"destinations": [{
    "provider": "akamai-netstorage",
    "options": {
        "host": "example-nsu.akamaihd.net",
        "cpCode": "123456"
    }
},{
    "provider": "shotstack",
    "exclude": true
}]
```

This will send the generated video to Akamai NetStorage but not to Shotstack.
