Как указать ContentType при записи файлов в AWS S3 с помощью TextIO.write ()?

Ниже мой пример конвейерного кода.

Версия Apache Beam - 2.3.0

DataflowPipelineOptions dataflowOptions = options.as(DataflowPipelineOptions.class);
dataflowOptions.setRunner(DataflowRunner.class);

Pipeline p = Pipeline.create(dataflowOptions);

p.apply(
    "ReadBigQuery", fromBQ)
  .apply(
    "BigQueryRowToCSV",
    ParDo.of(new convertToCSVFn())
  ).apply(
    "WriteToS3",
    TextIO.write()
      .to(destFilename)
      .withSuffix(".csv")
      .withoutSharding());

public interface Options extends DataflowPipelineOptions, S3Options {
  /*
    ...
         */
}

Просмотр метаданных файла, загруженного на S3 (объект на S3) в этом конвейере Content-Type является text/plain,

Поэтому, если вы попытаетесь загрузить этот файл, он будет распознан как .txt вместо.csv,

Есть ли способ указать это?

Если нет, будут ли планы по внедрению чего-то похожего на GcsCreateOptions?

Благодарю.

0 ответов

Другие вопросы по тегам