Audience: Data Owners, Data Users, and System Administrators
Content Summary: Immuta supports an S3-style REST API, which allows you to communicate with Immuta the same way you would with S3. Consequently, Immuta easily integrates with tools you may already be using to work with S3.
In this integration, Immuta implements a single bucket (with data sources broken up as sub-directories under that bucket), since some S3 tools only support the new virtual-hosted style requests.
The three APIs (outlined below) used in this integration support basic AWS functionality; the requests and responses for each are identical to those in S3.
This request returns the bucket configured within Immuta.
Method | Path | Successful Status Code |
---|---|---|
This request returns the contents of the given bucket.
Method | Path | Successful Status Code |
---|---|---|
This request returns a stream from the requested object within Immuta.
Method | Path | Successful Status Code |
---|---|---|
Example Request:
GET Bucket Example Request:
Note: There is a single file in the requested directory.
GET Bucket Example Response:
Boto 3 is the official Amazon Web Services client SDK for Python and is widely used by developers for accessing S3 objects. With Immuta's S3 integration, Immuta users can use boto3
to download policy-enforced files or tables.
The first step is to create a Session
object that points to your Immuta endpoint and is authenticated with a user-specific API Key.
To find out what objects are available for download, you can list the objects in the immuta
bucket. To filter down to a particular data source, pass in a Prefix
that corresponds to the SQL table name of your Immuta data source.
Once you have an object key, you can use the download_file
method to download the object to your local development environment.
GET
/s3p
200
GET
/s3p/{bucket}
200
GET
/s3p/{bucket}/{dataSource}/{key*}
200