从 AWS S3 转移到 Google-Cloud-Storage “未知”失败

Posted

技术标签:

【中文标题】从 AWS S3 转移到 Google-Cloud-Storage “未知”失败【英文标题】:Transfer from AWS S3 to Google-Cloud-Storage "UNKNOWN" failures 【发布时间】:2016-03-13 15:44:00 【问题描述】:

我正在使用 GCS Web 仪表板/控制台中提供的传输工具来安排将备份文件从 S3 复制到 GCS。

在 GCS 传输日志中,它显示“未知:(显示 241 次失败中的 5 次)”。该故障列表中显示的文件没有什么不同。每次计划传输时,相同的 241 个文件都会失败。有没有什么地方可以得到实际的错误信息?

我已经检查过了:

在这些失败前后成功复制了超过 150 万个其他文件。即,这些失败不在传输列表的开头或结尾,也不是连续的。 文件大小不太大。失败传输的大小范围为 100KB 到 7MB。 文件名允许使用特殊字符,例如_ - 空格,这些字符出现在失败的传输和成功的传输中。 失败的文件与成功传输的文件具有完全相同的权限。 传输中使用的 IAM 用户策略将所有操作授予 S3 存储桶。 使用与 s3cmd 相同的访问令牌和密钥确认 IAM 策略。 已检查 S3 访问日志以获取更多信息/错误...显示成功传输和失败传输的 http 206 状态。 (不是我预期的 http 状态,但成功和失败的传输都会出现相同的状态)

【问题讨论】:

【参考方案1】:

有几件事会导致 UNKNOWN 错误。有些是服务中的暂时性问题(在这种情况下,您应该重新运行传输 - 只有新的/更改的对象才会被第二次复制)。

在其他情况下,它可能是源对象中的怪癖。例如,服务将拒绝不具有符合 RFC 1341 的 Content-Type 的对象。特别是,它需要匹配 / 模式,并带有额外的限制。见What are all the possible values for HTTP "Content-Type" header?

【讨论】:

内容类型是原因。我的 ubuntu 机器上的 filelibmagic(版本 5.09)输出的内容类型/mime 类型为 Composite Document File V2 Document, No summary info,这是无效的。将filelibmagic 更新到5.14,然后重新上传到S3 解决了问题。

以上是关于从 AWS S3 转移到 Google-Cloud-Storage “未知”失败的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 aws unload 命令将数据从 AWS Redshift 卸载到 s3?

从 AWS Redshift 到 S3 的 AWS Glue ETL 作业失败

AWS s3 同步从 s3 复制到 EMR 很慢

将数据从 AWS S3 复制到 Aurora Postgres

AWS:使用从 s3 到 redshift 的复制命令时没有插入任何内容

当文件到达 NAS 时如何将文件从本地 NAS 移动到 AWS S3