使用 Python 脚本同步

准备工作

首先使用 pip 安装 farbox_bucket,参考命令 pip install farbox_bucket --user
其次,注意目录不适宜放在 iCloud 上, iCloud 的机制比较特殊,会导致 FarBox 的同步机制出问题,不建议 FarBox + iCloud 的使用方式,除非把 iCloud 上 “优化Mac存储空间” 的勾选去除。

注意: 请使用 pipenv 构建 Python 的环境,避免让自己本地的 Python 环境被 FarBox 项目混淆了,具体请参考《基于项目,独立的环境》 (这是全端工作室下一个开放课程的其中一篇内容)。

同步到服务器

创建一个 .py 的脚本文件,后续直接运行它就可以了。另外,sync_site_folder_simply 的调用是增量同步,除非被同步的目录有几万、几十万的文件,其它的时候,没有明显的性能问题。

# coding: utf8
import os
from farbox_bucket.client.sync import sync_to_farbox

# 如果 DEBUG 设定是 yes,会在日志中输出同步的记录
os.environ['DEBUG'] = 'yes'

private_key = """
这里是 Bucket 的私钥
"""

root =  "需要同步的目录的路径"

# 节点,下面这个只是参考
node = "192.168.100.7:7788"

# 开始同步
sync_to_farbox(
    node = node,
    root = root,
    private_key = private_key
)

从服务器端同步回来

脚本如何运行,参考上一段内容。

# coding: utf8
import os
from farbox_bucket.client.sync import sync_from_farbox

# 如果 DEBUG 设定是 yes,会在日志中输出同步的记录
os.environ['DEBUG'] = 'yes'

private_key = """
这里是 Bucket 的私钥
"""

root =  "需要同步的目录的路径"

# 节点,下面这个只是参考
node = "192.168.100.7:7788"

# 开始同步
sync_from_farbox(root=root, node=node, private_key=private_key) 

其它

如果被同步的目录中,有 .configs 这个隐藏目录:如果有 sorts.json,它会替换掉 Bucket 的排序设置;如果有 site.json,也会替换掉 Bucket 上的网站设置,它与 FarBox Web 端的网站设置是互相冲突的。

Comments
Write a Comment
  • 抓个虫,从服务器同步回来的脚本包名字写错啦【

    farbox_bucket.cleint.sync(×

    farbox_bucket.client.sync(√

    • Hepo reply

      @古川政良 嗯,我的过失,估计文档里还有很多地方有 typo ……

      对了,顺便帮我确认下,能否收到这条评论的邮件通知?

      • @Hepo 报,可以收到~

        • Hepo reply

          @古川政良 嗯,能收到就好。小 F 同学说是收不到,我一直都找不到原因,囧了……

  • 请问 “这里是 Bucket 的私钥”,这里的私钥需不需要把私钥写成一行(而不是很多空行),另外后面的“"""”应该怎么填写。

    • Hepo reply

      @ddkk3000 我好像很难解释这个问题,感觉这种方式应该不太合适你,以后会给自己带来很多不便。

      使用百度搜索 『python三个引号』?