Amazon S3 File Storage

A new feature of v2016.3+ is the ability to store reports, temp files, config, and other Exago files on an Amazon S3 Cloud server.

In order to connect to your cloud server, you'll need to obtain your access key and secret key. See Getting Your Access Key ID and Secret Access Key for more information.

Additionally, you'll need to take down the region code for the location of your cloud server. See Regions and Availability Zones for more information.

Once you have your information, you'll need to create a formatted connection string in the following format. You'll use this string in various areas of Exago in order to access your cloud server.

  • region: Indicates the region of the cloud server.
  • accesskey: Amazon access key credential.
  • secretkey: Amazon secret key credential.
  • bucketname: The storage directory.

You can use your Amazon cloud storage for three purposes: Config Storage, Report Storage, and Temp Files Storage (which includes themes and templates).




To enable EC2 instances access to S3 buckets, an IAM role needs to be created and tied to the instances with a policy allowing that level of access.

To use instance credentials, set every instance of accesskey to equal 'ec2' (accesskey='ec2').

The Config, Reports, and Temp files can all reside in a single S3 bucket, and will be placed automatically into separate Config, Reports, and Temp folders, which should not need to be created ahead of time.

This architecture diagram illustrates the EC2 environment:



Config Storage

An Exago installation contains a configuration file, usually called WebReports.xml, which tells the application where to store Reports and Temp files.

There are three ways which you can specify a cloud location for the config file:

  1. A file in the Exago install directory called appSettings.config.
  2. If you're using the .NET API, a parameter in the API constructor method.
  3. If you're using the REST API, a connection string needs to be placed in both appSettings.config files in the WebServiceApi folder and Exago's install directory.



Exago contains an xml file called appSettings.config in the root folder of the install directory. If it does not exist, create it as a text file with the following content:

<?xml version="1.0"?>
<appSettings> </appSettings>

This file is used for custom app settings which are automatically imported into Web.config during runtime. For more information, see appSettings.config / app.config.

Note: Do not edit the Web.config file directly. It is automatically generated by Exago, and any changes to it will be overridden.

To set the config file location, place your connection string in the appSettings.config file:

<add key="ExagoConfigPath" value="pathtype=s3;region='region';accesskey='accesskey';secretkey='secretkey';bucketname='bucketname';storagekey=config"/>

The 'bucketname' and 'region' values will need to be modified for their environment. 'bucketname' is the S3 bucket that will be to used for config, report, and temp storage, and 'region' is the region the S3 bucket belongs to.

To allow S3 access for EC2 instances, add the following line to the config after configuring the EC2 instances:

<add key="ExagoConfigPath" value="pathtype=s3;region='region';accesskey='ec2';bucketname='bucketname';storagekey=config"/>



Exago .NET API apps cannot access the appSettings.config file. Instead, you must use one of the following two methods to specify a config file location:

  1. Place the config key within the host application's web.config or app.config.
  2. Or pass the connection string in the API constructor method:
Api myApi = new Api("/exago/virtual/path", "WebReports.xml", "pathtype=s3;region='region';accesskey='accesskey';secretkey='secretkey';bucketname='bucketname'");

Similarly, managing and creating folders within an S3 file system through the .NET API requires an alternate method than the one listed in the .NET API General Reference. Instead of using the ReportMgmtFileSystem class to create, rename, or otherwise manage the file system within the .NET API, methods defined within the ReportManagement property of the API object must be used. For example, to add folders via the .NET API when using S3 storage, the following method should be called:

api.ReportManagement.AddFolder("<parent folder>", "<child folder>");



The REST API requires the following connection string to be placed in both appSettings.config files, located in the WebServiceApi folder and Exago's install directory.

<add key="ExagoConfigPath" value="pathtype=s3;region='us-east-1';accesskey='accesskey';bucketname='bucketname';secretkey='secretkey';storagekey=config"/>


Reports Storage

To use Amazon for report and folder management, enter your connection string in the Report Path field in your config file.

(Main Settings Report Path) <reportpath>


For EC2, the Report Path should be defined as:



Temporary Files Storage

To use Amazon for temp file storage, enter your connection string in the Temp Cloud Service field in your config file.

(Main Settings Temp Cloud Service) <tempcloudservice>


For EC2, the Temp Path should be defined as:

Note: You still need to maintain a local temp directory (Temp Path field).

Hidden Article Information

Article Author
Exago Development
created 2016-12-01 20:29:45 UTC
updated 2019-05-16 21:00:25 UTC

cloud, report management, Installation, Installing Exago, How Do I, AppSettings.config, Install, WebReports.xml, config file, configuration file, config, report path, cloud service, amazon, Amazon S3, S3,
Have more questions? Submit a request