You need to enable JavaScript to run this app. 如何在已安装AWS CLI的Windows服务器上实现本地文件夹新建文件/文件夹时自动同步至AWS S3
优惠活动
大模型
产品
解决方案
定价
更多

如何在已安装AWS CLI的Windows服务器上实现本地文件夹新建文件/文件夹时自动同步至AWS S3

Windows服务器本地文件夹到AWS S3持续自动同步配置

前置检查

  • 确认服务器已安装AWS CLI,并通过aws configure完成访问凭证、目标区域的基础配置,执行aws s3 ls能正常列出当前账号下的存储桶,验证连通性
  • 明确两个核心路径:本地需要持续同步的文件夹绝对路径(例如D:\work\sync-to-s3)、目标S3存储桶的对应路径(例如s3://company-backup-bucket/server-files/)

触发式自动同步实现

  • 采用系统内置的PowerShell文件事件监听机制实现同步,无需安装额外第三方工具,稳定性适配服务器长期运行场景
  • 编写监听同步脚本,将以下内容按需修改路径后,保存为s3-sync-script.ps1
# 基础配置项,按实际环境修改
$localFolder = "D:\work\sync-to-s3"
$s3Target = "s3://company-backup-bucket/server-files/"

# 初始化文件系统监听器
$fileWatcher = New-Object System.IO.FileSystemWatcher
$fileWatcher.Path = $localFolder
$fileWatcher.IncludeSubdirectories = $true
$fileWatcher.EnableRaisingEvents = $true

# 定义事件触发后的同步逻辑
$syncAction = {
    # 延迟2秒等待文件写入完成,避免同步不完整
    Start-Sleep -Seconds 2
    # 执行AWS CLI增量同步,过滤临时文件、Office锁文件
    & aws s3 sync $using:localFolder $using:s3Target --exclude "*.tmp" --exclude "~*" --only-show-errors
}

# 绑定文件新建、内容修改、重命名三类事件
Register-ObjectEvent $fileWatcher "Created" -Action $syncAction
Register-ObjectEvent $fileWatcher "Changed" -Action $syncAction
Register-ObjectEvent $fileWatcher "Renamed" -Action $syncAction

# 保持脚本常驻运行
while ($true) { Start-Sleep -Seconds 5 }
  • 配置Windows任务计划程序,将上述脚本设置为系统开机时自动启动,勾选“不管用户是否登录都要运行”选项,确保服务器重启、无用户登录场景下同步服务不中断
  • 同步逻辑说明:aws s3 sync本身为增量对比同步逻辑,只会传输本地有新增、内容变更的文件,不会重复传输已同步的存量文件,带宽占用可控

配置注意事项

  • 脚本文件不要存放到被监听的同步文件夹内部,避免脚本自身的变更触发无意义的循环同步
  • 首次部署完成后,手动执行一次aws s3 sync <本地路径> <S3路径>完成存量文件的初始全量同步,避免后续新文件触发时一次性传输大量内容导致的延迟
  • 可按需在AWS CLI命令中增加--delete参数,实现本地文件夹内删除的文件同步在S3对应路径删除(非必要不开启,避免误删本地文件导致S3端数据被同步删除)

内容的提问来源于stack exchange,提问作者Abhilash S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 08:27:04