mcpField
B
b2c-webdav

b2c-webdav

github.com/salesforcecommercecloud云与 DevOps57120 次安装今天更新
代码仓库

关于 b2c-webdav

b2c-webdav 是使用 b2c CLI 管理 Salesforce B2C Commerce WebDAV 文件的 Agent 技能,涵盖 impex、cartridges、logs 等目录中的文件操作。

主要功能

  1. 01列出、上传和下载 WebDAV 文件
  2. 02在不同 WebDAV 根目录管理文件
  3. 03创建目录并删除远程文件
  4. 04压缩和解压远程目录及归档
  5. 05使用自动检测的实例凭据和配置

适用场景

  1. 01传输导入和导出归档
  2. 02管理代码版本中的 cartridge 文件
  3. 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 - 代码 cartridge
  • realmdata - 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 - 运行和监控作业

评论

支持 Markdown