簡體   English   中英

如何從 apache 光束 java sdk 中的 minIO 讀取文件

[英]How to read a file from minIO in apache beam java sdk

我剛開始使用 minio 和 apache 光束。 我在 play.min.io 上創建了一個存儲桶並添加了一些文件(假設存儲的文件是 one.txt 和 two.txt)。 我想使用 Apache 光束 java sdk 訪問存儲在該存儲桶上的文件。 當我處理本地文件時,我只是傳遞文件的路徑,如 C://new//.. 但我不知道如何從 minio 獲取文件。 誰能幫我寫代碼。

我設法讓它與標准 AWS 配置之上的一些配置一起工作:

  1. AwsServiceEndpoint 應指向您的 minio 服務器(此處為 localhost:9000)。
    PipelineOptions options = PipelineOptionsFactory.fromArgs(args).create();
    ...
    options.as(AwsOptions.class).setAwsServiceEndpoint("http://localhost:9000");
  1. 必須啟用 PathStyleAccess(以便存儲桶訪問不會轉換為對“ http://bucket.localhost:9000 ”的請求,而是對“ http://localhost:9000/bucket ”的請求)。

這可以通過使用這種 MinioS3ClientBuilderFactory 擴展 DefaultS3ClientBuilderFactory 來完成:

public class MinioS3ClientBuilderFactory extends DefaultS3ClientBuilderFactory {
  @Override
  public AmazonS3ClientBuilder createBuilder(S3Options s3Options) {
    AmazonS3ClientBuilder builder = super.createBuilder(s3Options);
    builder.withPathStyleAccessEnabled(true);
    return builder;
  }
}

並將其注入如下選項中:

    Class<? extends S3ClientBuilderFactory> builderFactory = MinioS3ClientBuilderFactory.class;

    options.as(S3Options.class).setS3ClientFactoryClass(builderFactory);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM