这是一个有趣的。
在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浏览器中的可能配置吗?
谢谢。