type
status
date
slug
summary
category
tags
create_time
May 15, 2025 10:46 AM
icon
password
my_create_time
🧭 背景介绍
最近刚把博客静态文件全部上了
阿里云OSS
图床和CDN
,在日常的写作过程中,我通常需要先在本地通过PS
修图,然后再通过阿里云 OSS Browser
客户端手动将图片上传至OSS,供网站访问。这种方式虽然直观,但在文件数量增多、更新频繁的场景下逐渐暴露出以下问题:
- 上传操作繁琐,需要人工介入,效率低
- 容易出现遗漏,缺乏稳定的同步机制
- 文件同步不具备实时性,影响使用体验
为此,我计划采用一种 自动化、稳定、实时 的方案,将本地目录中的文件实时同步至 OSS。
方案具体是通过将 OSS 挂载为本地目录(
ossfs
),并结合实时文件监听工具 Lsyncd
,可以实现无需人工干预的自动同步,大幅提升效率并降低人为错误。❓ Lsyncd 是什么
Lsyncd 是一个基于
inotify 或 fsevents
的实时文件同步工具,它监控目录的文件更改并通过 rsync
(或其他方式)推送到远程或本地目标,非常适合做:- 实时同步目录
- 适配网络延迟(通过事件聚合)
- 自动重试失败的同步
PS:相比
inotifywait
更稳定,更易用。之前也试过inotifywait
经常收不到消息。⏩ 前提条件
- 一台已配置网络的 Linux 服务器(示例基于 CentOS)
- 阿里云 OSS 账户及已创建的 Bucket
- 已获取
AccessKeyId
与AccessKeySecret
📦 安装并配置 ossfs
1、执行以下命令,下载安装包。
2、执行以下命令,安装 ossfs。
3、执行以下命令,验证 ossfs 是否成功安装。
4、创建并编辑配置文件
- 配置文件路径:默认配置文件为
/etc/passwd-ossfs
。
- 配置文件格式:
$bucket_name:$access_key_id:$access_key_secret
。
5、挂载 OSS 到本地
6、验证挂载
⚙️ 安装并配置 Lsyncd
1. 安装 Lsyncd
2. 创建配置文件
示例配置内容:
⚠️
1、注意
source
和target
后面要加上/
,表示仅同步根目录的内容,不带上目录本身。2、需要修改一下默认配置文件的路径,编辑
/etc/sysconfig/lsyncd
,改为/etc/lsyncd/lsyncd.conf.lua
3. 创建日志目录
4. 启动并设置开机启动
✅ 验证同步效果
1、添加测试文件:
2、查看目标目录是否生成同步文件:
🧩 总结
通过将阿里云 OSS 挂载为本地文件系统,并使用 Lsyncd 实现实时同步,可以快速搭建一个简单的自动同步方案,避免了每次本地修完图,还要再手动上传到OSS的过程,大大的节省了重复工作,专注于内容生产。
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若您认可我的内容,欢迎 请我喝杯咖啡~
- 作者:lusyoe
- 链接:https://blog.lusyoe.com/article/lsyncd-ossfs-realtime-sync-oss
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。