使用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
  • PARQUET:阿帕奇拼花。 Parquet文件必须符合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🔗

在此页面上