apache beam 使用哪种协议从云存储写入和读取文件,是 HTTPS 还是二进制?

Which kind of protocol apache beam uses to write and read files from cloud storage, is it HTTPS or Binary?

我想知道 apache beam 使用哪种协议来读取和写入云存储。它是 HTTPS 还是 Binary(Blob)。我尝试 google 它但我没有找到。我知道 gsutil 命令使用 HTTPS 协议。

您正在混合两件事:传输层和数据编码。

  • Google 是否使用 HTTP 传输?是的,对于所有 API。 HTTPS 或 gRPC (HTTP/2) 是常用的。
  • Google是否使用二进制编码来加速传输?如前所述,传输可以是 HTTPS 或 gRPC。 HTTPS 通常用于 REST API 和传输 JSON 文本格式。当然,您可以交换二进制格式的文件(例如 GZIP 压缩和加速传输)。 gRPC 是一个二进制协议。您不交换 JSON,而是要交换的数据的二进制表示。因此,文件传输也是二进制模式。

现在,Beam 有什么用?通常,Google 库在后台使用 gRPC,因此编码是二进制的。如果您使用 JSON 执行自己的 REST API 调用,那么将使用 HTTP;但文件内容是,当它可以(取决于您的请求接受内容header)时,以二进制传输。


编辑 1

对于 BEAM,我查看了源代码。例如,您有 hereGoogleCloudStorageImpl object.

的创建

如果你看一下这个 class 的全名:import com.google.cloud.hadoop.gcsio.GoogleCloudStorageImpl;。好的,让我们看看hadoop包!!

Javadoc is clear: JSON API is used. to confirm that, I went to the source code 是的,JSON 格式用于 API 通信。

BUT,请记住这是 API 通信,文件内容周围的元数据。文件内容要以二进制格式发送(b64编码的明文应该很奇怪)。