如何使用 Apache Beam 库 [get/add GCS 文件用户定义的元数据 [org.apache.beam.sdk.io.*]

How to get/add GCS File user-defined metadata using Apache Beam library [org.apache.beam.sdk.io.*]

我正在设置数据流管道,其中一项操作是 get/add GCS 文件的元数据[用户提供的元数据]。

在独立的 java 应用程序中,我使用以下方法获取来自 StorageObject class 的元数据,但在 Apache Beam 库中没有找到类似的东西 method/api。任何指点都会很有帮助。

//Below code is from StorageObject.java
com.google.api.services.storage.model.StorageObject
//.....
public java.util.Map<String, java.lang.String> getMetadata() {
     return metadata;
}

我使用以下代码从 GCS 获取元数据,它在 DataFlow 管道中运行良好。

import com.google.cloud.storage.{BlobId, BlobInfo, Storage, StorageOptions}

val storage: Storage = StorageOptions.getDefaultInstance.getService
val blobId: BlobId = BlobId.of("bucket", "filename")
val srcMap: Map[String, String] = storage.get(blobId).getMetadata