您在此处:
B2C Commerce 中的导入与导出交易处理和来源大小
B2C Commerce 标准导入旨在处理任意大小的来源。与任何交易系统一样,必须对交易的大小进行限制。通过 Business Manager 触发和通过执行导入 pipelet 触发的导入的标准行为在每个对象之后进行。
您可以为导入子管道修改此行为。如果在(交易界限可在交易管道中进行定义的)显式交易中嵌入这项导入子管道,则将通过该封闭交易进行所有更改。
也可以对不同的对象类型导入(例如目录和网页内容数据)或单个交易中的其它更改进行分组。B2C Commerce 旨在处理的最大交易大小为 1000 个业务对象。必须确保不超过该限制。
我们建议您在任何可能的时候在每个对象之后使用标准行为。当导入到非生产环境时尝试使用这种方式。如果导入失败(例如,只有部分对象被导入),您可以再次进行导入。但是,在生产环境 (Production) 环境中,应该随时避免不一致。如果您导入到准备环境(Staging) 实例,则无法复制到生产环境 (Production)。有时,必须在明确交易中将导入嵌入到生产环境 (Production)。
B2C Commerce 中的文件大小和传输限制
B2C Commerce 包括文件大小和传输限制。
上传限制
如果您将 WebDAV 推送到 B2C Commerce 实例,则上传限制为 500 MB。但您可以上传的数量也取决于您的连接的速度和质量。如果传输文件的时间太长,连接有时会超时。Salesforce 建议压缩要上传的文件。如果在上传小于 500 MB 的文件时遇到问题,请联系 B2C Commerce 客户支持人员。
下载限制
对于 FTP 或 WebDAV,如果下载到文件,则文件大小必须小于 200 MB。如果下载到字符串,则文件大小将小得多。
FTPClient 大小限制
dw.net.FTPClient 现在对于文件获取执行大小限制。这些大小限制可以作为 dw.net.FTPClient.get() 参数传入,也可以使用默认值。
- 返回字符串的 get 操作的默认大小为 dw.net.FTPClient.DEFAULT_GET_STRING_SIZE (2Mb)。
- 创建本地文件的 get 操作的默认值为 dw.net.FTPClient.DEFAULT_GET_FILE_SIZE (10Mb)。
- 字符串的最大下载大小为 dw.net.FTPClient.MAX_GET_STRING_SIZE (10 Mb) and for a file is dw.net.FTPClient.MAX_GET_FILE_SIZE(200 Mb)。
HTTPClient 大小限制
HTTP 客户端不限制文件大小。
对外部 XML 实体和 DTD 声明的限制
对于所有 XML 导入(目录、客户、库存等),不得使用外部 XML 实体和 DTD 声明。为防止 XML 外部实体 (XXE) 攻击,已经将其停用(从 13.3.3 开始)。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE catalog [ <!ENTITY remote SYSTEM "http://remote.apt.vsecurity.org/"> ]>压缩来源
XML 文件大小可以通过压缩显著缩小。压缩后的来源有助于克服上传大小限制,并缩短较慢网络连接条件下的上传和下载时间。
标准导入支持文件通过原生 gzip 算法进行压缩。无需在实例中使用明确的 gunzip。只需向导入子管道提供一个文件名(例如 catalog.xml.gz)或在 Business Manager 中选择一个 gzip 压缩文件(扩展名必须为.gz)。
可以在 Business Manager 的导入和导出部分对单个文件进行来源压缩和解压缩(zip 压缩,而非 gzip 压缩)。此外,Business Manager 还会在上传过程中自动解压缩 zip 文件。您可以通过 dw.io.File.zip 和 dw.io.File.unzip 这两个 API 以编辑方式压缩/解压缩文件。
静态文件
目录和网页内容库中的持久对象通过静态文件进行补充,一般为产品图片。静态文件存储在实例文件系统中。XML 来源仅包含数据库对象。若要导出和导入或下载和上传静态文件,可以使用 WebDAV 界面。B2C Commerce 使您能够通过 API 的 dw.io.File.zip 和 dw.io.File.unzip,压缩/解压缩多个文件,来减少下载/上传操作的次数。
大小和运行时间限制
导入和导出旨在处理任意数量的来源对象。有些客户使用的来源包含数百个 MB。导入和导出过程通过分块技术支持大型数据组,内存中只存在当前处理的项目。虽然导入和导出文件没有大小限制,但是上传到实例可能有大小限制。
系统对 B2C Commerce 实例的请求施加超时。如果应用程序服务器未在五分钟之内做出回应,则网络服务器将关闭连接。但是,大型导入或导出的运行时间通常会超过五分钟。为了避免请求超时,可在任务管道中插入导入/导出子管道,并异步执行。任务管道没有运行时间限制。
在 B2C Commerce 中使用 WebDAV
每个 B2C Commerce 实例都拥有嵌入式 WebDAV 服务器和 WebDAV 客户端。
WebDAVClient 类别使用在商家远程系统上执行的服务器。WebDAV 使用 HTTP 或 HTTPS 连接。如果使用 WebDAV 和 HTTPS,则在向准备环境 (Staging) 和生产环境 (Production) 实例传输文件时应符合 PCI 要求。
对于上传的文件和目录,WebDAV 服务器将重命名、复制、修改或创建操作的时间戳重置为操作的日期和时间。
对于沙盒 (Sandbox) 实例,可以将文件从 Windows 计算机复制粘贴到插件中。Windows 操作系统中集成了 WebDAV 客户端,而您的插件中集成了 WebDAV 服务器。
当使用 WebDAV COPY 命令将文件的内容复制到自身时,目的地将被排除。目标地址将被排除,因为它已存在(请参阅以下注释)。排除可防止递归无限副本填充文件系统。
例如,尝试执行以下结构的递归副本:
folder/path/content
folder/path/content/c1
folder/path/content/c2
cp folder/path/content --> folder/path/content/targetfolder
结果:
folder/path/content
folder/path/content/c1
folder/path/content/c2
folder/path/content/targetfolder/c1
folder/path/content/targetfolder/c2
在示例中,目标文件夹中不存在目标文件夹(因为它会递归地出现这种情况)。
B2C Commerce WebDAV 服务器和 B2C Commerce WebDAV 客户端不能通信
您可以从任何安装有 WebDAV 的计算机(但不能从 B2C Commerce 实例)连接 WebDAV 客户端或 WebDAV 服务器。B2C Commerce WebDAV 客户端无法连接到其本身实例或其它实例中的 B2C Commerce WebDAV 服务器。
WebDAV 目录
B2C Commerce 通过 WebDAV 提供某些文件系统位置的安全访问。例如:
插件 https://<domain>/on/demandware.servlet/webdav/Sites/Cartridges
日志文件 https://<domain>/on/demandware.servlet/webdav/Sites/Logs
安全日志文件 https://<domain>/on/demandware.servlet/webdav/Sites/Securitylogs
导入/导出 https://<domain>/on/demandware.servlet/webdav/Sites/Impex
疑难解答
在尝试访问这些位置时,可能会收到“拒绝访问”错误。这些 WebDAV 位置执行 SSL 连接以确保文件传输的安全性。网店代码(以及订单、客户数据等导入文件)不得在未经加密的条件下公开传输。如果您尝试以未加密方式 (http) 访问这些位置,则 B2C Commerce 应用程序将拒绝您访问。如果您尝试通过浏览器访问 WebDAV 位置,请务必在 URL 中使用 HTTPS,以便使用 SSL 来保证安全性。如果您尝试通过 Total Commander 等 WebDAV 客户端进行连接,请务必在设置连接时选择 SSL 选项。
在 B2C Commerce 中使用 FTP
您可以使用 B2C Commerce 脚本类别 FTPClient 在您的实例中创建一个 FTP 客户端。B2C Commerce 还支持安全 FTP (sFTP),建议用于移动带有敏感信息的文件。
使用 FTP 在商家系统和 B2C Commerce 之间移动数据并不安全,因为 FTP 连接并未加密。我们不建议在准备环境 (Staging) 及生产环境 (Production) 系统上使用 FTP。除非在数据传输之前及之后进行加密和解密,因为连接不符合 PCI 要求。
通过 B2C Commerce 使用 HTTPS
确保已购买有效的安全证书并将其安装到生产 (Production ) 或准备环境 (Staging) 系统。本主题适用于 B2C Commerce。
安全证书必须满足以下要求:
- 由正式信任中心发布
- 到期日期为未来日期
- 分配到域名
可能有两种类型的安全证书:
- 由受信任的管理机构明确为客户创建的安全证书(客户的 DNS 名称位于安全证书链的第二级)。这种类型的证书要求仅安装客户的安全证书文件。
- 作为受信任机构公司操作拥有的基本安全证书的子证书而建立的安全证书(客户的 DNS 名称位于安全证书链的第三级)。这种类型的证书要求同时安装客户的安全证书文件和代表第二级基本安全证书的安全证书文件。

