All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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