Lazy loaded image
📁Lyncd + ossfs 实现实时同步到阿里云 OSS
字数 963阅读时长 3 分钟
2025-5-16
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
  • 已获取 AccessKeyIdAccessKeySecret

📦 安装并配置 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、注意sourcetarget后面要加上/,表示仅同步根目录的内容,不带上目录本身。
2、需要修改一下默认配置文件的路径,编辑/etc/sysconfig/lsyncd,改为/etc/lsyncd/lsyncd.conf.lua
3. 创建日志目录
4. 启动并设置开机启动

✅ 验证同步效果

1、添加测试文件:
2、查看目标目录是否生成同步文件:

🧩 总结

通过将阿里云 OSS 挂载为本地文件系统,并使用 Lsyncd 实现实时同步,可以快速搭建一个简单的自动同步方案,避免了每次本地修完图,还要再手动上传到OSS的过程,大大的节省了重复工作,专注于内容生产。
 
💡
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若您认可我的内容,欢迎 请我喝杯咖啡~
 
上一篇
建站满月总结:从零开始,到产品雏形的第一步
下一篇
我用AI贡献开源:修复 NotionNext 画廊 Bug

评论
Loading...