在称之为重复之前,请阅读我的问题。
我找到了两种方法来检查来自EMR的S3中是否存在文件夹,但我想知道哪一个是正确的。为了获得EMR的凭证(例如从Spark应用程序)访问S3,我做了:new InstanceProfileCredentialsProvider().getCredentials
。
AmazonS3.doesObjectExist(s3Bucket, s3Prefix)
s3.doesObjectExist("my-bucket", "my-directory")
返回false,但确实如此
s3.doesObjectExist("my-bucket", "my-directory/")
返回true
s3.doesObjectExist("my-bucket", "my-directory2")
返回false,但确实如此
s3.doesObjectExist("my-bucket", "my-directory2/")
返回false,但确实如此s3.get.listObjectsV2(s3_bucket, s3_object).getKeyCount > 0
。您不需要获取与此请求匹配的所有结果,而只需获取第一个窗口,检查它是否为空。为什么(1)在(2)返回true时返回false?你建议哪种解决方案?
现在,我建议坚持2或升级库版本。在使用EMR堆栈时,如果不遇到冲突,可能无法执行此操作。
之前曾与issues报道过doesObjectExist
。