Example usage for org.apache.commons.net.io CopyStreamListener CopyStreamListener

List of usage examples for org.apache.commons.net.io CopyStreamListener CopyStreamListener

Introduction

In this page you can find the example usage for org.apache.commons.net.io CopyStreamListener CopyStreamListener.

Prototype

CopyStreamListener

Source Link

Usage

From source file:com.unispezi.cpanelremotebackup.ftp.FTPClient.java

/**
 * Will download the given file/*  w ww.j av a2s  .com*/
 * @param filePath          path on server
 * @param stream            stream to write file data to
 * @param progressListener  optional progress listener
 * @param totalFileBytes    total file size in bytes, option if no progressListener is given
 */
public void downloadFile(String filePath, OutputStream stream, final ProgressListener progressListener,
        final long totalFileBytes) {

    String logString = "Downloading \"" + filePath + "\"";

    assertLoggedIn(logString);
    try {

        String origLogString = logString;
        logString = "Setting file type to binary"; //Patch over for handleException below
        Log.debug(logString);

        ftp.setFileType(FTP.BINARY_FILE_TYPE);
        Log.debug("Reply string was:" + ftp.getReplyString());

        checkResult(ftp.getReplyCode(), logString);

        logString = origLogString;

        //Logout
        Log.debug(logString);

        if (progressListener != null) {
            ftp.setCopyStreamListener(new CopyStreamListener() {

                int lastPercentage = 0;

                @Override
                public void bytesTransferred(CopyStreamEvent event) {
                    bytesTransferred(event.getTotalBytesTransferred(), event.getBytesTransferred(),
                            event.getStreamSize());
                }

                @Override
                public void bytesTransferred(long totalBytesTransferred, int bytesTransferred,
                        long streamSize) {
                    int currentPercentage = (int) (totalBytesTransferred * 100 / totalFileBytes);
                    if (currentPercentage > lastPercentage) {
                        lastPercentage = currentPercentage;
                        progressListener.progressPercentageReached(currentPercentage);
                    }
                }
            });
        }
        ftp.retrieveFile(filePath, stream);
        Log.debug("Reply string was:" + ftp.getReplyString());

        stream.close();

        // Check for errors
        checkResult(ftp.getReplyCode(), logString);

    } catch (IOException e) {
        throw handleException(e, logString);
    }
}

From source file:io.dockstore.common.FileProvisioning.java

/**
 * Copy from stream to stream while displaying progress
 *
 * @param inputStream source//from   w ww  . j a  v  a 2 s  . c o  m
 * @param inputSize   total size
 * @param outputSteam destination
 * @throws IOException
 */
private static void copyFromInputStreamToOutputStream(InputStream inputStream, long inputSize,
        OutputStream outputSteam) throws IOException {
    CopyStreamListener listener = new CopyStreamListener() {
        ProgressPrinter printer = new ProgressPrinter();

        @Override
        public void bytesTransferred(CopyStreamEvent event) {
            /** do nothing */
        }

        @Override
        public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) {
            printer.handleProgress(totalBytesTransferred, streamSize);
        }
    };
    try (OutputStream outputStream = outputSteam) {
        Util.copyStream(inputStream, outputStream, Util.DEFAULT_COPY_BUFFER_SIZE, inputSize, listener);
    } catch (IOException e) {
        throw new RuntimeException("Could not provision input files", e);
    } finally {
        IOUtils.closeQuietly(inputStream);
        System.out.println();
    }
}

From source file:com.vimeo.VimeoUploadClient.java

/**
 * upload file (streaming)/*from w w  w . jav a2  s. c om*/
 * 
 * @param endpoint
 */
private void doPut(String endpoint) {
    URL endpointUrl;
    HttpURLConnection connection;
    try {
        endpointUrl = new URL(endpoint);
        connection = (HttpURLConnection) endpointUrl.openConnection();
        connection.setRequestMethod("PUT");
        connection.setRequestProperty("Content-Length", videoFile.length() + "");
        connection.setRequestProperty("Content-Type", new MimetypesFileTypeMap().getContentType(videoFile));
        connection.setFixedLengthStreamingMode((int) videoFile.length());
        connection.setDoOutput(true);

        CopyStreamListener listener = new CopyStreamListener() {
            public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) {
                // TODO: get the values to visualize it: currentStreamSize,
                // currentBytesTransferred
                currentStreamSize = streamSize;
                currentBytesTransferred = totalBytesTransferred;

                /*
                 * System.out.printf("\r%-30S: %d / %d (%d %%)", "Sent",
                 * totalBytesTransferred, streamSize, totalBytesTransferred
                 * * 100 / streamSize);
                 */
            }

            public void bytesTransferred(CopyStreamEvent event) {
            }
        };
        InputStream in = new FileInputStream(videoFile);
        OutputStream out = connection.getOutputStream();
        System.out.println("Uploading \"" + videoFile.getAbsolutePath() + "\"... ");
        long c = Util.copyStream(in, out, Util.DEFAULT_COPY_BUFFER_SIZE, videoFile.length(), listener);
        System.out.printf("\n%-30S: %d\n", "Bytes sent", c);
        in.close();
        out.close();

        // return code
        System.out.printf("\n%-30S: %d\n", "Response code", connection.getResponseCode());

        // TODO: Response code, if everything OK the code is 200

    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:FTPClientExample.java

private static CopyStreamListener createListener() {
    return new CopyStreamListener() {
        private long megsTotal = 0;

        //            @Override
        public void bytesTransferred(CopyStreamEvent event) {
            bytesTransferred(event.getTotalBytesTransferred(), event.getBytesTransferred(),
                    event.getStreamSize());
        }//from   w  w  w.  j a  va 2s. c om

        //            @Override
        public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) {
            long megs = totalBytesTransferred / 1000000;
            for (long l = megsTotal; l < megs; l++) {
                System.err.print("#");
            }
            megsTotal = megs;
        }
    };
}

From source file:com.interflora.ftp.SampleFTPS.java

private static CopyStreamListener createListener() {
    return new CopyStreamListener() {
        private long megsTotal = 0;

        public void bytesTransferred(CopyStreamEvent event) {
            bytesTransferred(event.getTotalBytesTransferred(), event.getBytesTransferred(),
                    event.getStreamSize());
        }/*  ww  w. j  av  a2s . co  m*/

        public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) {
            long megs = totalBytesTransferred / 1000000;
            for (long l = megsTotal; l < megs; l++) {
                System.err.print("#");
            }
            megsTotal = megs;
        }
    };
}

From source file:com.xiangzhurui.util.ftp.FTPClientExample.java

private static CopyStreamListener createListener() {
    return new CopyStreamListener() {
        private long megsTotal = 0;

        @Override//from   w  w  w. j a v a2  s . c om
        public void bytesTransferred(CopyStreamEvent event) {
            bytesTransferred(event.getTotalBytesTransferred(), event.getBytesTransferred(),
                    event.getStreamSize());
        }

        @Override
        public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) {
            long megs = totalBytesTransferred / 1000000;
            for (long l = megsTotal; l < megs; l++) {
                System.err.print("#");
            }
            megsTotal = megs;
        }
    };
}

From source file:ch.sdi.core.impl.ftp.FTPClientExample.java

private CopyStreamListener createListener() {
    return new CopyStreamListener() {

        private long megsTotal = 0;

        @Override//from   w w  w. ja v  a 2  s . co  m
        public void bytesTransferred(CopyStreamEvent event) {
            bytesTransferred(event.getTotalBytesTransferred(), event.getBytesTransferred(),
                    event.getStreamSize());
        }

        @Override
        public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) {
            // ??? what does this algo? Print a # for each transferred MB?
            long megs = totalBytesTransferred / 1000000;
            for (long l = megsTotal; l < megs; l++) {
                myLog.warn("#");
            }
            megsTotal = megs;
        }
    };
}

From source file:org.neuinfo.foundry.consumers.common.FtpClient.java

private static CopyStreamListener createListener() {
    return new CopyStreamListener() {
        private long megsTotal = 0;

        // @Override
        public void bytesTransferred(CopyStreamEvent event) {
            bytesTransferred(event.getTotalBytesTransferred(), event.getBytesTransferred(),
                    event.getStreamSize());
        }/*from   www .  java2 s  . c om*/

        // @Override
        public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) {
            long megs = totalBytesTransferred / 1000000;
            for (long l = megsTotal; l < megs; l++) {
                System.err.print("#");
            }
            megsTotal = megs;
        }
    };
}