获取 S3 同步失败的详细信息

问题描述 投票:0回答:2

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

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

如何在 SQL 作业中捕获这些详细信息?

amazon-web-services amazon-s3
2个回答
0
投票

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

使用 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        
    }

这已投入生产,我们终于能够确定哪个文件/对象出现故障。

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

希望这对其他人有帮助!


0
投票

可以在调试模式下运行并检查;这在 Windows 中对我有用。

aws s3 sync "my local directory" s3://mybucket --debug 2> "logname.txt"
© www.soinside.com 2019 - 2024. All rights reserved.