Create an Amazon S3 base connection using the Flow Service API
A base connection represents the authenticated connection between a source and Adobe Experience Platform.
This tutorial walks you through the steps to create a base connection for Amazon S3 (hereinafter referred to as “S3”) using the Flow Service API.
Getting started
This guide requires a working understanding of the following components of Adobe Experience Platform:
- Sources: Experience Platform allows data to be ingested from various sources while providing you with the ability to structure, label, and enhance incoming data using Platform services.
- Sandboxes: Experience Platform provides virtual sandboxes which partition a single Platform instance into separate virtual environments to help develop and evolve digital experience applications.
The following sections provide additional information that you will need to know in order to successfully connect to an S3 storage using the Flow Service API.
Gather required credentials
In order for Flow Service to connect with your S3 storage, you must provide values for the following connection properties:
s3AccessKey
s3SecretKey
serviceUrl
serviceUrl
is: https://s3.{REGION}.amazonaws.com/)
.bucketName
-
), and cannot be formatted as an IP address.folderPath
s3SessionToken
connectionSpec.id
ecadc60c-7455-4d87-84dc-2a0e293d997b
.For more information on getting started, visit this Amazon Web Services document.
Using Platform APIs
For information on how to successfully make calls to Platform APIs, see the guide on getting started with Platform APIs.
Create a base connection
A base connection retains information between your source and Platform, including your source’s authentication credentials, the current state of the connection, and your unique base connection ID. The base connection ID allows you to explore and navigate files from within your source and identify the specific items that you want to ingest, including information regarding their data types and formats.
To create a base connection ID, make a POST request to the /connections
endpoint while providing your S3 authentication credentials as part of the request parameters.
API format
POST /connections
Request
The following request creates a base connection for S3:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Amazon S3 base connection",
"description": "Amazon S3 base connection with temporary session token",
"auth": {
"specName": "Access Key",
"params": {
"s3AccessKey": "{S3_ACCESS_KEY}",
"s3SecretKey": "{S3_SECRET_KEY}",
"s3SessionToken": "{S3_SESSION_TOKEN}
}
},
"connectionSpec": {
"id": "ecadc60c-7455-4d87-84dc-2a0e293d997b",
"version": "1.0"
}
}'
auth.params.s3AccessKey
auth.params.s3SecretKey
auth.params.s3SessionToken
connectionSpec.id
ecadc60c-7455-4d87-84dc-2a0e293d997b
Response
A successful response returns details of the newly created connection, including its unique identifier (id
). This ID is required to explore your storage in the next tutorial.
{
"id": "4cb0c374-d3bb-4557-b139-5712880adc55",
"etag": "\"1700d77b-0000-0200-0000-5e3b41a10000\""
}
Next steps
By following this tutorial, you have created an S3 connection using APIs and a unique ID was obtained as part of the response body. You can use this connection ID to explore cloud storages using the Flow Service API.
Appendix
The following section provides additional information on using the S3 source.
Update your S3 session token
The s3SessionToken
is temporary and must be updated when it expires. You can update the session token associated with your base connection by making a PATCH request to Flow Service API. See the S3 overview for more information on temporary security credentials for S3.
If-Match
header is required when making a PATCH request. The value for this header is the unique etag of the connection you want to update.API format
PATCH /connections
Request
The following request creates a base connection for S3:
curl -X PATCH \
'https://platform.adobe.io/data/foundation/flowservice/connections/4cb0c374-d3bb-4557-b139-5712880adc55' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'If-Match: "1700d77b-0000-0200-0000-5e3b41a10000"'
-d '[
{
"op": "replace",
"path": "/auth/params/s3SessionToken",
"value": "{SESSION_TOKEN}"
}
]'
op
add
, replace
, and remove
.path
value
Response
A successful response returns your base connection ID and an updated etag. You can verify the update by making a GET request to the Flow Service API, while providing your connection ID.
{
"id": "4cb0c374-d3bb-4557-b139-5712880adc55",
"etag": "\"3600e378-0000-0200-0000-5f40212f0000\""
}