gsutil 无法验证 Kafka Connect S3 上传的文件的哈希值
gsutil unable to validate hashes for file uploaded by Kafka Connect S3
我正在尝试使用 gsutil 将一些文件从 Kafka s3 接收器传输到 Google Cloud Storage 存储桶。因为 Kafka-Connect to S3 执行分段上传,上传文件的 Etag(即使它们很小)不是 MD5 哈希,这导致 gsutil 抛出完整性检查警告。我想知道在这种情况下是否有办法处理完整性检查,或者我应该忽略警告?
我已经尝试过 cp 和 rsync 命令,它们都有相同的行为。
gsutil -m cp -r s3://somebucket/folder gs://somebucket/folder
gsutil -m rsync -r s3://somebucket/folder gs://somebucket/folder
密钥存在非 MD5 etag(“7dc7e8a64434da88964f3d65f1e05c6b-1”),无法进行数据完整性检查。
警告:未找到任何哈希来验证从 s3://source-bucket/source-folder-avro/2019/07/04/22/source-file-avro+0+0000038153.avro 下载并上传到 gs://target_bucket/2019/07/04/22/target-file-avro+0+0000038153.avro 的对象.没有哈希就无法保证完整性。
S3 分段上传没有记录的方法来计算哈希值;我相信您能做的最好的事情就是 this reverse-engineered answer which requires you to know the part sizes of the original upload. You might be able to glean this from your Kafka-S3 configuration 并按照该流程验证完整性。
除非 S3 更改此行为,否则如果您不知道原始部分大小,那么您将永远无法验证分段上传的 S3 对象的完整性(通过 gsutil
或任何其他应用)。因此,在这种情况下,我认为您能做的最好的事情就是承担风险并根据您对数据类型的了解执行任何其他可能的验证。
我正在尝试使用 gsutil 将一些文件从 Kafka s3 接收器传输到 Google Cloud Storage 存储桶。因为 Kafka-Connect to S3 执行分段上传,上传文件的 Etag(即使它们很小)不是 MD5 哈希,这导致 gsutil 抛出完整性检查警告。我想知道在这种情况下是否有办法处理完整性检查,或者我应该忽略警告?
我已经尝试过 cp 和 rsync 命令,它们都有相同的行为。
gsutil -m cp -r s3://somebucket/folder gs://somebucket/folder
gsutil -m rsync -r s3://somebucket/folder gs://somebucket/folder
密钥存在非 MD5 etag(“7dc7e8a64434da88964f3d65f1e05c6b-1”),无法进行数据完整性检查。
警告:未找到任何哈希来验证从 s3://source-bucket/source-folder-avro/2019/07/04/22/source-file-avro+0+0000038153.avro 下载并上传到 gs://target_bucket/2019/07/04/22/target-file-avro+0+0000038153.avro 的对象.没有哈希就无法保证完整性。
S3 分段上传没有记录的方法来计算哈希值;我相信您能做的最好的事情就是 this reverse-engineered answer which requires you to know the part sizes of the original upload. You might be able to glean this from your Kafka-S3 configuration 并按照该流程验证完整性。
除非 S3 更改此行为,否则如果您不知道原始部分大小,那么您将永远无法验证分段上传的 S3 对象的完整性(通过 gsutil
或任何其他应用)。因此,在这种情况下,我认为您能做的最好的事情就是承担风险并根据您对数据类型的了解执行任何其他可能的验证。