zephir / kirby-contentsync
Kirby contentsync 插件
2.1.0
2024-02-15 13:17 UTC
Requires
- getkirby/cli: ^1.1
- getkirby/composer-installer: ^1.2
- php-curl-class/php-curl-class: ^9.19
Requires (Dev)
- getkirby/cms: 4.0-beta.2
README
厌倦了像 git push/pull、scp、rsync 或 sftp 这样手动且繁琐的方法来同步服务器和本地开发环境之间的内容吗?
欢迎使用 Contentsync 的无缝高效同步解决方案。
目录
1. 安装
推荐安装方式是使用 Composer。
1.1 Composer
composer require zephir/kirby-contentsync
1.2 下载
下载并将此存储库复制到 /site/plugins/kirby-contentsync
。
1.3 Git 子模块
git submodule add https://github.com/zephir/kirby-contentsync.git site/plugins/kirby-contentsync
2. 设置
安装后,您只需配置 选项、将更新的站点部署到服务器,并使用 Kirby 命令。
3. 选项
3.1 enabledRoots
为了支持不同类型的文件夹结构,我们使用了 kirby()->roots()
函数(因此选项的名称),插件支持同步所有 Kirby 根路径。默认情况下,插件配置为同步 accounts
和 content
根。
[ 'accounts' => true, 'content' => true ]
3.2 示例配置条目
'zephir.contentsync' => [ 'source' => 'https://getkirby.com', 'token' => 'abc123', 'enabledRoots' => [ 'license' => true // also sync license ] ]
4. 使用
Kirby CLI 命令
kirby content:sync
带有详细日志
kirby content:sync -v
5. 它是如何工作的?
插件创建了 2 个端点(路由)
/contentsync/files
:返回所有启用的根目录中的所有文件列表。/contentsync/file/:fileId
:返回请求文件的 内容。
如果您没有设置令牌,则端点将不会工作。
由 files
返回的每个文件都有一个 ID(根名称 + 路径的 sha1 哈希)、一个路径(相对于 Kirby 根)、一个 Kirby 根名称和文件内容的校验和。
插件将检索到的文件列表与本地文件列表进行比较。它会自动删除服务器列表中不存在的本地文件,创建服务器列表中不存在但本地文件列表中的文件,并更新校验和不同的文件。
它不会同步未更改的文件。
6. 注意事项
- 由于我们逐个下载文件,WAF / 防火墙可能会阻止请求。您可以为此端点添加一个例外。
- 生成校验和可能会给服务器带来一些负载,尤其是对于大文件。但对于“正常”网站来说,应该没问题 - 即使您有数 GB 的数据/许多文件。
- 由于我们通过 PHP 和 Web 端点提供所有文件,因此大文件(200MB+)的下载可能会被服务器托管商(尤其是在共享托管中)停止。
许可证
MIT