关于 b2c-webdav
b2c-webdav 是使用 b2c CLI 管理 Salesforce B2C Commerce WebDAV 文件的 Agent 技能,涵盖 impex、cartridges、logs 等目录中的文件操作。
主要功能
- 01列出、上传和下载 WebDAV 文件
- 02在不同 WebDAV 根目录管理文件
- 03创建目录并删除远程文件
- 04压缩和解压远程目录及归档
- 05使用自动检测的实例凭据和配置
适用场景
- 01传输导入和导出归档
- 02管理代码版本中的 cartridge 文件
- 03获取日志或站点专属动态文件
MCP 相关
该技能介绍了使用 `webdav_list`、`webdav_get` 和 `webdav_put` 列出、读取及传输单个文件的 MCP 对应工具。递归传输以及 mkdir、删除、ZIP、UNZIP 等操作则建议使用 CLI。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ salesforcecommercecloud/ b2c-developer-tooling --skill b2c-webdav安装后在 Claude Code 中输入/b2c-webdav确认已加载。
附带文件evals/trigger-evals.json
详细介绍
B2C WebDAV 技能
使用 b2c CLI 插件在 Salesforce B2C Commerce 实例上执行 WebDAV 文件操作。包括列出文件、上传、下载,以及管理不同 WebDAV 根目录中的文件。
提示: 如果未全局安装
b2c,请改用npx @salesforce/b2c-cli(例如,npx @salesforce/b2c-cli webdav ls)。
MCP 等效工具
如果可用,优先使用 webdav_list、webdav_get 和 webdav_put,分别用于列出单个目录、读取确切文本,以及传输单个文件。webdav_get 使用 HTTP 字节范围(offset、maxBytes、返回的 size/nextOffset);outputPath 可下载整个文件。webdav_put 接受 content 或 sourcePath;父目录必须存在,替换文件则需要设置 overwrite: true。本地路径位于 MCP 主机上,相对于 projectDirectory。传输上限为 64 MiB;无需先读取其他技能。
使用 cartridge_deploy 选择/映射本地 cartridge。对于递归传输、mkdir、删除、ZIP/UNZIP,或 MCP 未提供的额外标志,请继续使用 CLI。
配置与身份验证
CLI 会从 SFCC_* 环境变量(包括项目 .env)、所选的项目本地或共享 dw.json,以及配置插件中自动发现目标实例和凭据。package.json 仅提供非敏感默认值。通常不需要 --server、--client-id、--client-secret、--username 和 --password 等标志——仅在需要覆盖自动检测结果时传入。
如果只配置了服务器,首条命令会打开浏览器,让用户使用其 Account Manager 账户登录,并等待登录完成;请告知用户完成登录。用户的 Business Manager 角色决定其访问权限;如果出现 403,错误会指出缺少的权限(例如,Cartridges 所需的 WebDAV_Manage_Customization)。
运行 b2c setup inspect 查看解析后的配置,以及每个值的来源(用于脚本时可使用 --json;默认情况下,密钥会保持屏蔽)。有关优先级规则和故障排除,请参阅 b2c-cli:b2c-config 技能。
WebDAV 根目录
--root 标志指定 WebDAV 目录:
impex(默认)- 导入/导出目录temp- 临时文件cartridges- 代码 cartridgerealmdata- Realm 数据catalogs- 产品目录libraries- 内容库static- 静态资源dynamic- 特定站点的文件,包括 Velocity 模板logs- 应用程序日志securitylogs- 安全日志
示例
动态站点文件
使用 --root=dynamic,并将站点 ID 作为远程路径的第一个部分。例如,
MySite/mockData/mock.vm 对应 Sites/Dynamic/MySite/mockData/mock.vm。
此位置存放独立于代码版本的特定站点文件,包括 dw.template.Velocity.renderTemplate() 使用的 Velocity 模板。
b2c webdav ls --root=dynamic MySite/
b2c webdav mkdir --root=dynamic MySite/mockData
b2c webdav put --root=dynamic ./mock.vm MySite/mockData/
b2c webdav get --root=dynamic MySite/mockData/mock.vm -o ./mock.vm
同一根目录和带站点前缀的路径也适用于 rm、zip 和 unzip。
列出文件
# list files in the default IMPEX root
b2c webdav ls
# list files in a specific path
b2c webdav ls src/instance
# list files in the cartridges root
b2c webdav ls --root=cartridges
# list files with JSON output
b2c webdav ls --root=impex --json
下载文件
# download a file from IMPEX (default root)
b2c webdav get src/instance/export.zip
# download to a specific local path
b2c webdav get src/instance/export.zip -o ./downloads/export.zip
# download from a specific root
b2c webdav get customerror.log --root=logs
# output file content to stdout
b2c webdav get src/instance/data.xml -o -
上传文件
# upload a file to IMPEX
b2c webdav put ./local-file.zip src/instance/
# upload to a specific root
b2c webdav put ./my-cartridge.zip --root=cartridges
创建目录
# create a directory in IMPEX
b2c webdav mkdir src/instance/my-folder
# create a directory in a specific root
b2c webdav mkdir my-folder --root=temp
删除文件
# delete a file
b2c webdav rm src/instance/old-export.zip
# delete from a specific root
b2c webdav rm old-file.txt --root=temp
删除 Cartridges
要从代码版本中删除 cartridges,请使用 cartridges 根目录,并采用 {code-version}/{cartridge-name} 路径格式:
# delete a cartridge from a code version
b2c webdav rm v25_1_0/app_mysite --root=cartridges
# delete multiple cartridges
b2c webdav rm v25_1_0/app_mysite --root=cartridges
b2c webdav rm v25_1_0/int_myintegration --root=cartridges
# list cartridges in a code version first
b2c webdav ls v25_1_0 --root=cartridges
重要: 路径格式为 {code-version}/{cartridge-name},而不是 /cartridges/{code-version}/...。--root=cartridges(或 -r cartridges)标志用于设置 WebDAV 根目录。
压缩/解压远程文件
# create a zip archive of a remote directory
b2c webdav zip src/instance/my-folder
# extract a remote zip archive
b2c webdav unzip src/instance/archive.zip
导入集管理的状态
如果目标是一次性应用一组本地站点导入/导出归档文件,请勿手动编写标记文件脚本。请使用更高层级的命令:
b2c job import-set
如果要从头开始,但不删除之前的历史记录,请使用新的集合 ID,并在后续运行中继续使用该 ID:
b2c job import-set --set-id migrations-reset-20260818
如果要就地重置默认历史记录,请将其删除,然后重新运行导入集:
b2c webdav rm --root=impex b2c-cli/import-sets/migrations
b2c job import-set
如需使用自定义集合 ID,请将最后一个 migrations 路径段替换为该 ID。就地重置会永久清除哪些归档文件已成功处理的记录,并再次将所有当前归档文件设为待处理状态,因此只有在所有归档文件都可以安全地重新应用时才使用此操作。--break-lock 用于恢复,不会重置历史记录。
如需查看规范工作流、命名约定、重试行为和恢复规则,请参阅 b2c-cli:b2c-site-import-export 技能中的 应用有序、幂等的导入集 一节。
更多命令
请参阅 b2c webdav --help,查看 webdav 主题下可用命令和选项的完整列表。
相关技能
b2c-cli:b2c-logs- 筛选日志检索、搜索和实时跟踪(推荐用于日志探索)b2c-cli:b2c-code- 更高层级的代码部署(推荐用于上传 cartridge)b2c-cli:b2c-site-import-export- 规范的站点归档和幂等导入集指南b2c-cli:b2c-job- 运行和监控作业