无法使用hadoop文件系统API列出S3存储桶中的文件

时间:2019-01-11 15:16:26

标签: hadoop amazon-s3 cloudberry

这是一个有趣的。

在S3中,我有两个带有文件的文件夹。 使用Cloudberry创建了一个名为folder_cloudberry的文件夹 使用S3浏览器创建的另一个文件夹称为folder_s3browser

运行以下代码时,我可以列出和访问folder_cloudberry下的所有文件,但不能列出和访问folder_s3browser下的文件。

所以我这样做是为了检查两个文件夹的权限

val s3FileSystem: FileSystem = FileSystem.get(new URI(sourceURI), spark.sparkContext.hadoopConfiguration)

val sourceURI_cloudberry = new URI(s"$sourceURI/folder_cloudberry/")
val sourceURI_s3browser = new URI(s"$sourceURI/folder_s3browser/")

println("Cloudberry:")
s3FileSystem.listStatus(new Path(sourceURI_cloudberry .getPath))(0)
println("\nS3Browser:")
s3FileSystem.listStatus(new Path(sourceURI_s3browser .getPath))(0)

这是输出

Cloudberry:
res223: org.apache.hadoop.fs.FileStatus = S3AFileStatus{path=s3a://.../folder_cloudberry; isDirectory=true; modification_time=0; access_time=0; owner=; group=; permission=rwxrwxrwx; isSymlink=false}

S3Browser:
res225: org.apache.hadoop.fs.FileStatus = S3AFileStatus{path=s3a://.../folder_s3browser; isDirectory=false; length=1; replication=1; blocksize=33554432; modification_time=1547136725000; access_time=0; owner=; group=; permission=rw-rw-rw-; isSymlink=false}

请注意isDirectory和权限上的差异。

此问题的解决方法是在Cloudberry中重命名folder_s3browser,并且可以访问它。

S3凭据在S3浏览器和Cloudberry中是相同的。

这是S3浏览器中的可能配置吗?

谢谢。

0 个答案:

没有答案