从AWS EMR检查AWS S3中是否存在文件夹的正确方法?

问题描述 投票:0回答:1

在称之为重复之前,请阅读我的问题。

我找到了两种方法来检查来自EMR的S3中是否存在文件夹,但我想知道哪一个是正确的。为了获得EMR的凭证(例如从Spark应用程序)访问S3,我做了:new InstanceProfileCredentialsProvider().getCredentials

  1. 使用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,但确实如此
  2. 与此同时,这是我的修复:s3.get.listObjectsV2(s3_bucket, s3_object).getKeyCount > 0。您不需要获取与此请求匹配的所有结果,而只需获取第一个窗口,检查它是否为空。

为什么(1)在(2)返回true时返回false?你建议哪种解决方案?

amazon-web-services apache-spark amazon-s3 amazon-emr
1个回答
1
投票

现在,我建议坚持2或升级库版本。在使用EMR堆栈时,如果不遇到冲突,可能无法执行此操作。

之前曾与issues报道过doesObjectExist

© www.soinside.com 2019 - 2024. All rights reserved.