code: public static S3RecoverableWriter writer(
  			final FileSystem fs,
  			final FunctionWithException<File, RefCountedFile, IOException> tempFileCreator,
  			final S3AccessHelper s3AccessHelper,
  			final Executor uploadThreadPool,
  			final long userDefinedMinPartSize,
  			final int maxConcurrentUploadsPerStream) {
  
  		checkArgument(userDefinedMinPartSize >= S3_MULTIPART_MIN_PART_SIZE);
  
  		final S3RecoverableMultipartUploadFactory uploadFactory =
  				new S3RecoverableMultipartUploadFactory(
  						fs,
  						s3AccessHelper,
  						maxConcurrentUploadsPerStream,
  						uploadThreadPool,
  						tempFileCreator);
  
  		return new S3RecoverableWriter(s3AccessHelper, uploadFactory, tempFileCreator, userDefinedMinPartSize);
  	}
docs: --------------------------- Static Constructor ---------------------------