
org.kuali.common.aws.s3.S3 Maven / Gradle / Ivy
package org.kuali.common.aws.s3;
import static com.google.common.base.Preconditions.checkNotNull;
import org.kuali.common.aws.s3.model.ObjectSummary;
import org.kuali.common.core.io.DiskUsage;
import com.google.common.base.Function;
public final class S3 {
public static DiskUsage diskUsage(Iterable objects) {
long sum = 0;
long count = 0;
for (ObjectSummary object : objects) {
// Skip "directories"
if (!object.getKey().endsWith("/")) {
count++;
sum += object.getSize();
}
}
return DiskUsage.builder().withCount(count).withSize(sum).build();
}
public static Function weighObjectSummary() {
return WeighObjectSummary.INSTANCE;
}
private enum WeighObjectSummary implements Function {
INSTANCE;
@Override
public Double apply(ObjectSummary summary) {
checkNotNull(summary);
long size = summary.getSize();
return (size == 0) ? 1D : size * 1D;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy