zephir/kirby-contentsync

Kirby contentsync 插件

安装: 206

依赖: 0

建议: 0

安全: 0

星级: 49

关注者: 4

分支: 1

开放问题: 1

类型:kirby-plugin

2.1.0 2024-02-15 13:17 UTC

This package is auto-updated.

Last update: 2024-09-19 11:44:36 UTC


README

cover

厌倦了像 git push/pull、scp、rsync 或 sftp 这样手动且繁琐的方法来同步服务器和本地开发环境之间的内容吗?
欢迎使用 Contentsync 的无缝高效同步解决方案。

此插件需要 Kirby 3/4Kirby CLI 以及 PHP 8 或更高版本才能运行。

目录

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 根路径。默认情况下,插件配置为同步 accountscontent 根。

[
    '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 个端点(路由)

  1. /contentsync/files:返回所有启用的根目录中的所有文件列表。
  2. /contentsync/file/:fileId:返回请求文件的 内容。

如果您没有设置令牌,则端点将不会工作。

files 返回的每个文件都有一个 ID(根名称 + 路径的 sha1 哈希)、一个路径(相对于 Kirby 根)、一个 Kirby 根名称和文件内容的校验和。

插件将检索到的文件列表与本地文件列表进行比较。它会自动删除服务器列表中不存在的本地文件,创建服务器列表中不存在但本地文件列表中的文件,并更新校验和不同的文件。

它不会同步未更改的文件。

6. 注意事项

  1. 由于我们逐个下载文件,WAF / 防火墙可能会阻止请求。您可以为此端点添加一个例外。
  2. 生成校验和可能会给服务器带来一些负载,尤其是对于大文件。但对于“正常”网站来说,应该没问题 - 即使您有数 GB 的数据/许多文件。
  3. 由于我们通过 PHP 和 Web 端点提供所有文件,因此大文件(200MB+)的下载可能会被服务器托管商(尤其是在共享托管中)停止。

许可证

MIT

致谢