通用 Feed SFTP 服务器允许将多种 Feed 类型上传到每个环境的单个 SFTP 服务器。本指南将逐步介绍如何使用通用 SFTP 服务器,并提供指向相应 Feed 的相应指南的链接,以便您规划使用。
(请参阅文档中的导出 Feed(端到端)或 Feed(入门)部分)。通用 SFTP 服务器依赖于两次单独的上传:
- 描述符文件:用于描述您将上传的 Feed 类型
- Feed 文件:实际 Feed 的内容
描述符字段的结构
上传描述符文件是为了告知我们的系统您要上传的 Feed 类型。这样一来,我们就可以正确验证和处理 Feed。描述符文件应在 Feed 内容之前上传,并且必须遵循以下命名要求:
- 您必须为描述符文件使用
.filesetdesc.json文件扩展名。 - 每个描述符文件名都必须是唯一的,并且不能在多次上传中重复使用。我们建议在文件名中添加生成时间戳和 Feed 名称。
- 示例:offers_1524606581.filesetdesc.json
- 每个描述符文件都必须列出最新 Feed 中相关 Feed 名称的所有数据文件。
message FilesetDescriptor {
// The timestamp at which this feed was generated, in Unix time format
// (seconds since the epoch). (required)
int64 generation_timestamp = 1;
// Identifies the name of this feed. (required)
string name = 2;
// Paths (relative to the dropbox root) specifying data files included in this
// feed. (required)
repeated string data_file = 3;
}name 字段的可能值包括:
下面提供了一个包含两个分片的商品 Feed 的 JSON 描述符文件示例:
{
"generation_timestamp": 1524606581,
"name": "promote.offer",
"data_file": [
"offers_1524606581_1.json",
"offers_1524606581_2.json"
]
}构建 Feed 内容
上传描述符文件后,您将上传与描述符文件命名的 Feed 配置文件相对应的 Feed 数据类型的所有 Feed 文件。文件名和路径位置(相对于 SFTP 服务器)必须与 data_file 字段中包含的内容完全一致。如果任何文件缺失、命名不当或上传到其他位置,则整个 Feed 都不会被处理。
这些 Feed 数据文件的内容必须符合描述符文件中指定的 Feed 的相关规范。
每个 Feed 文件名都必须是唯一的,并且不能在上传过程中重复使用。我们建议在文件名中添加生成时间戳和分片编号(增量 ID)。
- 示例:offers_1524606581_1.json
Feed 文件大小和上传频率
- 确保 Feed 文件小于 200 MB(压缩后)。
- 每个解压缩后的数据文件的大小应小于 2 GB。
- 大多数集成只需要使用单个分片。您应尽可能少地使用分片。每个 Feed 最多可包含 1000 个分片。
- 在一个分片中发送的各个记录无需在未来 Feed 中的同一分片编号中发送。
- 为实现更好的性能,您应将数据平均分到各个分片,使所有分片文件的大小相近。
- 如有必要,请使用 gzip 压缩 Feed。但是,请分别对每个 Feed 分片执行压缩操作。
问题排查和调试
上传文件(描述符文件和 Feed 文件)后,前往合作伙伴门户上的提取查看器(文档)(依次前往提取 > 历史记录),即可查看 Feed 提取进度。
在描述符文件的“Feed 名称”列中查找您输入的 name,以找到您的 Feed。
Feed 被提取后(状态为 Success 或 Fail),您可以点击相应行来查看错误和警告的详细信息。