You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS CLI仅同步S3中最新上传的文件至Windows本地?

解决S3 Sync仅同步新增文件(避免重复拉取已删除旧文件)

方案一:Windows PowerShell + AWS CLI实现精准时间筛选

这是最贴合需求的方案,用PowerShell替代Linux的awk/管道命令处理时间逻辑,无需额外服务:

  1. 初始化同步时间记录
    第一次运行时,创建记录上次同步时间的文件:

    Get-Date -Format "yyyy-MM-ddTHH:mm:ssZ" | Out-File -FilePath "C:\your-path\last_sync_time.txt" -Encoding utf8
    
  2. 编写同步脚本
    创建PowerShell脚本Sync-S3-NewFiles.ps1,内容如下:

    # 读取上次同步时间
    $lastSyncTime = Get-Content -Path "C:\your-path\last_sync_time.txt" -Raw | Trim
    
    # 筛选S3中data1/前缀下,晚于上次同步时间的文件
    $newFiles = aws s3api list-objects-v2 --bucket bucket-name --prefix data1/ --query "Contents[?LastModified > '$lastSyncTime'].Key" --output text
    
    # 同步符合条件的新文件到本地
    if ($newFiles) {
        foreach ($file in $newFiles -split "`t") {
            # 移除S3前缀,保持本地文件结构一致
            $localPath = "E:\Datafolder\" + $file.Replace("data1/", "")
            aws s3 cp "s3://bucket-name/$file" $localPath
        }
    }
    
    # 更新同步时间为当前时间
    Get-Date -Format "yyyy-MM-ddTHH:mm:ssZ" | Out-File -FilePath "C:\your-path\last_sync_time.txt" -Encoding utf8
    
  3. 配置任务计划程序
    在任务计划程序中设置执行命令:

    powershell -ExecutionPolicy Bypass -File "C:\your-path\Sync-S3-NewFiles.ps1"
    

    每次执行只会同步上次同步之后新增的文件,本地删除旧文件也不会重新拉取。

方案二:修改EC2上传逻辑,按日期分目录同步

通过给上传文件按日期分类,Windows端只同步当日目录,彻底避免旧文件干扰:

  1. 修改EC2的cron命令
    每天上传的文件放到对应日期的子目录下:

    DATE=$(date +%Y-%m-%d)
    aws s3 mv --recursive localdir s3://bucket-name/data1/$DATE/ --exclude "*" --include "localdir/*"
    
  2. Windows端bat脚本
    编写sync_s3.bat,自动同步当日目录:

    @echo off
    :: 获取当前日期,格式YYYY-MM-DD
    for /f "tokens=2-4 delims=/ " %%a in ('date /t') do set "DATE=%%c-%%a-%%b"
    aws s3 sync s3://bucket-name/data1/%DATE%/ E:\Datafolder\
    

    同样通过任务计划程序执行该bat文件即可。

方案三:Lambda备选方案(仅当CLI方案不适用时考虑)

如果需要更自动化的触发(比如文件上传后立即同步),可以用Lambda:

  • 给S3桶配置s3:ObjectCreated:*触发事件,当有新文件上传时触发Lambda
  • 在Lambda中调用Windows机器的下载接口(比如通过SMB、API网关触发本地脚本),或者直接生成预签名URL让Windows端拉取新文件
  • 该方案复杂度更高,需要额外配置权限和网络,优先推荐前两种CLI方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:25:06