in src/main/java/software/amazon/encryption/s3/internal/MultiFileOutputStream.java [86:102]
public MultiFileOutputStream init(UploadObjectObserver observer,
long partSize, long diskLimit) {
if (observer == null) {
throw new IllegalArgumentException("Observer must be specified");
}
this.observer = observer;
if (diskLimit < partSize << 1) {
throw new IllegalArgumentException(
"Maximum temporary disk space must be at least twice as large as the part size: partSize="
+ partSize + ", diskSize=" + diskLimit);
}
this.partSize = partSize;
this.diskLimit = diskLimit;
final int max = (int) (diskLimit / partSize);
this.diskPermits = max < 0 ? null : new Semaphore(max);
return this;
}