为什么 DataflowRunner 将某种哈希值放入暂存的 jars 文件名中?

Why is DataflowRunner putting some kind of hash value into the staged jars filename?

当 DataflowRunner 启动时,它会将 jars 文件上传到暂存位置。为什么它会在 jar 名称的末尾生成似乎是哈希值的内容?这个散列是如何生成的?是否像SNAPSHOTS一样支持内容变化的jar文件?

例如beam-sdks-java-harness-2.18.0.jar 变为 beam-sdks-java-harness-2.18.0-zSYSExFXVnBkN_8dj0glwg.jar

我宁愿保留名称原样,因为那样我可以使用 gsutil -m cp ... 来加快上传速度。或者,可以将多重上传功能添加到现有机制中。

此外,我可以在哪里提交 DataflowRunner 的问题或功能请求?目前,它不会扩展文件 glob,例如target/libs/*,所以我自己用 shell 脚本来完成,但我希望将其视为核心功能。

可以找到有关 Github 的信息:

Stages files to {@link DataflowPipelineOptions#getStagingLocation()}, suffixed with their md5 hash to avoid collisions.

这些文件将附加一个 MD5 散列。所以文件名将是 file-<someHash>.zip。 MD5 消息摘要算法是一种广泛使用的哈希函数,可生成 128 位哈希值。

您还可以查看 this Whosebug 线程。 您可以为 Dataflow here.

创建问题或功能请求

希望对您有所帮助。