Skip to main content

Cloud storage integrations

Import and export files between your Amazon S3 cloud storage and Hex projects.

  • Available on Professional, Team, and Enterprise plans.
  • Users will need the Admin worskpace role to create and grant access to cloud storage integrations.
  • Users will need access to the integration and Can Edit or higher permissions to import and export files.

Hex cloud storage integrations allow you and your team to easily import CSV, JSON, and other files from your cloud storage into your Hex projects for use in your data notebooks and data apps.

Create a cloud storage integration

To create a cloud storage integration, go to Settings > Integrations > External file integrations and click + Connection. Select your cloud storage provider to open the integration form.

Amazon S3

You will need to enter the bucket name, AWS region, and access keys for an IAM user. The IAM user must be allowed to perform the ListBucket and GetObject actions on the bucket, and on files and folders in the bucket.

The Enable writeback toggle will control whether or not this integration can export files from Hex to the S3 bucket. The IAM user will also need to have PutObject permissions in order to update files or create new files in the bucket.

Import files from your cloud storage integration

In your project, open the Files sidebar. Under the External file integrations header, select Import on the appropriate integration and select the files you want to import.

Reference imported files in Python

Files you import from your cloud storage integration are stored in a subdirectory of your project’s Hex directory with the naming pattern external-files/${integration_type}/${integration_name}. The integration name will be in lower-case with any non-alphanumeric characters removed, and spaces replaced by underscores. For example, the path for an S3 integration named "Hex's Testing Bucket" would be external-files/s3/hexs_testing_bucket.

Export files to your cloud storage integration

Hex watches the subdirectory associated with your cloud storage integration for new files and for updates to existing files. Changes are automatically exported to your cloud storage provider.

For example, if a CSV file were created from a dataframe using dataframe.to_csv('external-files/s3/hexs_testing_bucket/my_new_data.csv'), Hex would write the file my_new_data.csv to the appropriate Amazon S3 bucket. Note that files created in this way will not be automatically imported into the project and will no longer be present once the kernel restarts.