使用Flow Service API浏览云存储系统

本教程使用Flow Service API来浏览第三方云存储系统。

入门指南

本指南要求对Adobe Experience Platform的以下组件有充分的了解:

  • 来源: Experience Platform 允许从各种来源摄取数据,同时使您能够使用服务来构建、标记和增强传入数 Platform 据。
  • 沙箱: Experience Platform 提供将单个实例分区为单 Platform 独虚拟环境的虚拟沙箱,以帮助开发和发展数字体验应用程序。

以下各节提供您需要了解的其他信息,以便使用Flow Service API成功连接到云存储系统。

获取连接ID

要使用Platform API探索第三方云存储,您必须拥有有效的连接ID。 如果您尚未连接要使用的存储,则可以通过以下教程创建一个:

读取示例API调用

本教程提供示例API调用,以演示如何设置请求的格式。 这包括路径、必需的标头和格式正确的请求负载。 还提供API响应中返回的示例JSON。 有关示例API调用文档中使用的约定的信息,请参阅Experience Platform疑难解答指南中关于如何读取示例API调用🔗的部分。

收集所需标题的值

要调用Platform API,您必须首先完成身份验证教程。 完成身份验证教程后,将为所有Experience Platform API调用中每个所需标头提供值,如下所示:

  • Authorization: Bearer {ACCESS_TOKEN}
  • x-api-key: {API_KEY}
  • x-gw-ims-org-id: {IMS_ORG}

Experience Platform中的所有资源(包括属于Flow Service的资源)都隔离到特定虚拟沙箱。 对Platform API的所有请求都需要一个头,该头指定操作将在中执行的沙箱的名称:

  • x-sandbox-name: {SANDBOX_NAME}

所有包含有效负荷(POST、PUT、PATCH)的请求都需要额外的媒体类型标头:

  • Content-Type: application/json

浏览您的云存储

使用云存储的连接ID,您可以通过执行GET请求来浏览文件和目录。 在执行GET请求以浏览您的云存储时,您必须包括下表中列出的查询参数:

参数 描述
objectType 要浏览的对象类型。 将此值设置为:
  • folder:浏览特定目录
  • root:浏览根目录。
object 仅当查看特定目录时才需要此参数。 其值表示要浏览的目录的路径。

使用以下调用查找要引入Platform的文件的路径:

API格式

GET /connections/{CONNECTION_ID}/explore?objectType=root
GET /connections/{CONNECTION_ID}/explore?objectType=folder&object={PATH}
参数 描述
{CONNECTION_ID} 云存储源连接器的连接ID。
{PATH} 目录的路径。

请求

curl -X GET \
    'http://platform.adobe.io/data/foundation/flowservice/connections/{CONNECTION_ID}/explore?objectType=folder&object=/some/path/' \
    -H 'Authorization: Bearer {ACCESS_TOKEN}' \
    -H 'x-api-key: {API_KEY}' \
    -H 'x-gw-ims-org-id: {IMS_ORG}' \
    -H 'x-sandbox-name: {SANDBOX_NAME}'

响应

成功的响应会返回查询的目录中找到的一系列文件和文件夹。 请注意您希望上传的文件的path属性,因为在下一步中需要提供它来检查其结构。

[
    {
        "type": "file",
        "name": "account.csv",
        "path": "/test-connectors/testFolder-fileIngestion/account.csv",
        "canPreview": true,
        "canFetchSchema": true
    },
    {
        "type": "file",
        "name": "profileData.json",
        "path": "/test-connectors/testFolder-fileIngestion/profileData.json",
        "canPreview": true,
        "canFetchSchema": true
    },
    {
        "type": "file",
        "name": "sampleprofile--3.parquet",
        "path": "/test-connectors/testFolder-fileIngestion/sampleprofile--3.parquet",
        "canPreview": true,
        "canFetchSchema": true
    }
]

Inspect文件结构

要从云存储中检查GET文件的结构,请在提供文件路径和键入作为查询参数时执行数据请求。

您可以在提供文件路径和类型的同时执行GET请求,从云存储源中检查数据文件的结构。 您还可以通过将不同文件类型指定为查询参数的一部分来检查不同的文件类型,例如CSV、TSV或压缩的JSON和分隔文件。

API格式

GET /connections/{CONNECTION_ID}/explore?objectType=file&object={FILE_PATH}&fileType={FILE_TYPE}&{QUERY_PARAMS}&preview=true
GET /connections/{CONNECTION_ID}/explore?objectType=file&object={FILE_PATH}&preview=true&fileType=delimited&columnDelimiter=\t
GET /connections/{CONNECTION_ID}/explore?objectType=file&object={FILE_PATH}&preview=true&fileType=delimited&compressionType=gzip;
参数 描述
{CONNECTION_ID} 云存储源连接器的连接ID。
{FILE_PATH} 要检查的文件的路径。
{FILE_TYPE} 文件的类型。 支持的文件类型包括:
  • 分隔符:分隔符分隔的值。 DSV文件必须以逗号分隔。
  • JSON:JavaScript对象表示法。 JSON文件必须符合XDM
  • PARCE:阿帕奇拼花。 拼花文件必须符合XDM。
{QUERY_PARAMS} 可用于筛选结果的可选查询参数。 有关详细信息,请参阅查询参数一节。

请求

curl -X GET \
    'http://platform.adobe.io/data/foundation/flowservice/connections/{CONNECTION_ID}/explore?objectType=file&object=/aep-bootcamp/Adobe%20Pets%20Customer%2020190801%20EXP.json&fileType=json&preview=true' \
    -H 'Authorization: Bearer {ACCESS_TOKEN}' \
    -H 'x-api-key: {API_KEY}' \
    -H 'x-gw-ims-org-id: {IMS_ORG}' \
    -H 'x-sandbox-name: {SANDBOX_NAME}'

响应

成功的响应返回查询文件的结构,包括表名和数据类型。

[
    {
        "name": "Id",
        "type": "String"
    },
    {
        "name": "FirstName",
        "type": "String"
    },
    {
        "name": "LastName",
        "type": "String"
    },
    {
        "name": "Email",
        "type": "String"
    },
    {
        "name": "Phone",
        "type": "String"
    }
]

使用查询参数

Flow Service API支持使用查询参数来预览和检查不同的文件类型。

参数 描述
columnDelimiter 您指定为列分隔符以检查CSV或TSV文件的单个字符值。 如果未提供该参数,则此值默认为逗号(,)
compressionType 用于预览压缩的分隔文件或JSON文件的必需查询参数。 支持的压缩文件有:
  • bzip2
  • gzip
  • deflate
  • zipDeflate
  • tarGzip
  • tar

后续步骤

通过本教程,您探索了您的云存储系统,找到了要导入Platform的文件的路径,并查看了其结构。 您可以在下一个教程中使用此信息来从您的云存储收集数据并将其引入Platform🔗

On this page