Legacy S3 Access Pattern
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.
S3 as a Filesystem
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.
GET Bucket
This request returns the bucket configured within Immuta.
GET
/s3p
200
GET Bucket Contents
This request returns the contents of the given bucket.
GET
/s3p/{bucket}
200
GET Object
This request returns a stream from the requested object within Immuta.
GET
/s3p/{bucket}/{dataSource}/{key*}
200
Example Request:
Example: HTTP Request and Response
GET Bucket Example Request:
Note: There is a single file in the requested directory.
GET Bucket Example Response:
Example: Using Boto 3 to Download Objects
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.
Last updated