0

S3にバケットが存在するかどうかを確認する必要があり、次のコードがあります。

public static final String S3_URI = "s3n://accessKey:secretKey";

FileSystem fs = new NativeS3FileSystem(new Jets3tNativeFileSystemStore(S3_URI, null));
if (!fs.exists(bucket)) {
     getLogger().error("The input directory '{}' does not exists.", bucket);
     return false;
}

ただし、不平を言ったeclipseはJets3tNativeFileSystemStoreをタイプに解決できず、不平を言ったimportsステートメントはorg.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStoreを表示しません。Jets3tNativeFileSystemStoreのソースコードを確認しました。

class Jets3tNativeFileSystemStore implements NativeFileSystemStore {

  private S3Service s3Service;
  private S3Bucket bucket;
  ...

それはプライベートクラスだということですか?バケットがS3に存在するかどうかを確認する正しい方法は何ですか?ありがとう。

4

1 に答える 1

1

パッケージプライベートです。同じJavaパッケージからのみアクセスできます。そのパッケージで物事を宣言することを妨げるものは何もありませんが、それは醜いハックです。FileSystems3n://を含む任意のURLに適切なファイルシステムを提供できる静的メソッドはありませんか?

于 2012-07-23T17:10:41.643 に答える