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 包中访问它。尽管没有什么可以阻止您在该包中声明内容,但这是一个丑陋的 hack。是不是有一个静态方法FileSystem可以为任何 URL 提供适当的文件系统,包括 s3n://?

于 2012-07-23T17:10:41.643 回答