Browse Source

REPORT-102146 fix: isDirectory方法某些场景判断不正确

release/10.0
Afly 2 years ago
parent
commit
66beccd286
  1. 21
      src/main/java/com/fanruan/fs/s3/repository/core/S3ResourceRepository.java

21
src/main/java/com/fanruan/fs/s3/repository/core/S3ResourceRepository.java

@ -399,19 +399,16 @@ public class S3ResourceRepository extends BaseResourceRepository {
@Override
public boolean isDirectory(String path) {
if (path.endsWith(DELIMITER) && exist(path)) {
return true;
}
ObjectListing listing = s3.listObjects(bucket, path);
if (listing.getObjectSummaries().isEmpty()) {
return false;
}
if (listing.getObjectSummaries().size() > 1) {
return true;
if (path.endsWith(DELIMITER)) {
return exist(path);
} else {
S3ObjectSummary summary = listing.getObjectSummaries().get(0);
return !StringKit.equals(listing.getPrefix(), summary.getKey());
ObjectListing listing = s3.listObjects(bucket, path);
List<S3ObjectSummary> objectSummaries = listing.getObjectSummaries();
if (objectSummaries.isEmpty()) {
return false;
}
String dirFormat = path + DELIMITER;
return objectSummaries.stream().anyMatch(s3ObjectSummary -> StringUtils.equals(s3ObjectSummary.getKey(), dirFormat));
}
}

Loading…
Cancel
Save