【问题标题】:Get details of an S3 sync failure获取 S3 同步失败的详细信息
【发布时间】:2022-07-27 20:04:34
【问题描述】:

我们在将本地目录同步到 S3 存储桶的 SQL 作业中运行 S3 同步命令。有时,我们会收到错误代码为 1 或有时为 2 的同步“错误”。文档列出了每个代码的含义;错误代码 1 提供的详细信息较少,并留下更多关于该问题的问题。它只是说明“一个或多个 Amazon S3 传输操作失败。仅限于 S3 命令。”

当我在 PowerShell 脚本中运行同步命令并遇到错误(即同步文档正在打开)时,窗口会显示错误消息以及导致问题的特定文件。

如何在我的 SQL 作业中捕获这些详细信息?最终,错误代码 1 是什么意思,什么样的问题会触发 1 和 2?

【问题讨论】:

  • 几个月后再次查看这篇文章,我明白为什么它没有获得很多回应 - 它需要关注。手头的真正问题是关于错误代码 1:在这些情况下可能出现的问题是什么?
  • 对于任何跟随的人,我从这个 SO 帖子 stackoverflow.com/a/35076194/16577485 中发现,我可以对错误代码 1 做出反应并将输出路由到文本文件,然后可能会了解哪些文件失败.会发回我的结果。

标签: amazon-web-services amazon-s3


【解决方案1】:

我已经解决了这个问题...

使用 PowerShell 脚本,在 AWS s3 同步命令中,我们将结果输出到文本文件:

aws s3 sync c:\source\dir s3://target/dir/ > F:\Source\s3Inventory\SyncOutput.txt

然后将文本文件内容读入字符串变量:

$S3Output = Get-Content -Path C:\Source\s3Inventory\SyncOutput.txt -Raw

如果同步命令中的 $LASTEXITCODE 不等于 0(表示错误),那么我们会发送一封包含结果的电子邮件:

if ($LASTEXITCODE -ne 0)
    {   
        #Send email containing the value of string variable $S3Output        
    }

这已投入生产,我们终于能够确定哪个文件/对象失败了。

当然可以将文本文件附加到电子邮件中,而不是将内容读入字符串。

希望这对其他人有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 2011-09-01
    • 2012-06-02
    • 2020-10-08
    • 2018-08-04
    相关资源
    最近更新 更多