Example usage for com.google.api.client.googleapis.media MediaHttpDownloader setProgressListener

List of usage examples for com.google.api.client.googleapis.media MediaHttpDownloader setProgressListener

Introduction

In this page you can find the example usage for com.google.api.client.googleapis.media MediaHttpDownloader setProgressListener.

Prototype

public MediaHttpDownloader setProgressListener(MediaHttpDownloaderProgressListener progressListener) 

Source Link

Document

Sets the progress listener to send progress notifications to or null for none.

Usage

From source file:GoogleDriveAPI.java

License:Apache License

/** Downloads a file using either resumable or direct media download. */
public static void download(String email, String fileID, String downFile) throws IOException {
    setup(email);/*from   w  ww  .jav  a2  s .c  o  m*/
    // file path parsing
    String folderName, fileName;
    int idx = Math.max(downFile.lastIndexOf('/'), downFile.lastIndexOf('\\'));
    folderName = downFile.substring(0, idx);
    fileName = downFile.substring(idx + 1);
    // create parent directory (if necessary)
    java.io.File parentDir = new java.io.File(folderName);
    if (!parentDir.exists() && !parentDir.mkdirs()) {
        throw new IOException("Unable to create parent directory");
    }

    // OutputStream out = new FileOutputStream(new java.io.File(parentDir,
    // uploadedFile.getTitle()));
    OutputStream out = new FileOutputStream(new java.io.File(parentDir, fileName));

    File fileToDownload = drive.files().get(fileID).execute();
    MediaHttpDownloader downloader = new MediaHttpDownloader(httpTransport,
            drive.getRequestFactory().getInitializer());
    // downloader.setDirectDownloadEnabled(useDirectDownload);
    downloader.setProgressListener(new FileDownloadProgressListener());
    downloader.download(new GenericUrl(fileToDownload.getDownloadUrl()), out);
}

From source file:api.Captions.java

License:Apache License

/**
 * Saves caption track to file. (Not permitted for most videos.)
 *
 * @param captionId id//  w ww. j  a va 2  s.  c  o  m
 * @throws IOException (can be thrown by caption.download method)
 */
private static void downloadCaption(String captionId) throws IOException {
    Download captionDownload = yt.captions().download(captionId).setTfmt(SRT);
    MediaHttpDownloader downloader = captionDownload.getMediaHttpDownloader();
    downloader.setDirectDownloadEnabled(false);
    MediaHttpDownloaderProgressListener downloadProgressListener = new MediaHttpDownloaderProgressListener() {
        public void progressChanged(MediaHttpDownloader downloader) throws IOException {
            switch (downloader.getDownloadState()) {
            case MEDIA_IN_PROGRESS:
                System.out.println("Download in progress");
                System.out.println("Download percentage: " + downloader.getProgress());
                break;
            // This value is set after the entire media file has
            //  been successfully downloaded.
            case MEDIA_COMPLETE:
                System.out.println("Download Completed!");
                break;
            // This value indicates that the download process has
            //  not started yet.
            case NOT_STARTED:
                System.out.println("Download Not Started!");
                break;
            }
        }
    };
    downloader.setProgressListener(downloadProgressListener);

    OutputStream outputFile = new FileOutputStream("captionFile.srt");
    captionDownload.executeAndDownloadTo(outputFile);
}

From source file:com.datafrog.mms.bak.DriveSample.java

License:Apache License

/** Downloads a file using either resumable or direct media download. */
private static void downloadFile(final boolean useDirectDownload, final File uploadedFile) throws IOException {
    // create parent directory (if necessary)
    java.io.File parentDir = new java.io.File(DIR_FOR_DOWNLOADS);
    if (!parentDir.exists() && !parentDir.mkdirs()) {
        throw new IOException("Unable to create parent directory");
    }// w w  w .jav a2  s .  com
    OutputStream out = new FileOutputStream(new java.io.File(parentDir, uploadedFile.getTitle()));

    MediaHttpDownloader downloader = new MediaHttpDownloader(httpTransport,
            drive.getRequestFactory().getInitializer());
    downloader.setDirectDownloadEnabled(useDirectDownload);
    downloader.setProgressListener(new FileDownloadProgressListener());
    System.out.println("DownLoadURL : " + uploadedFile.getDownloadUrl());
    downloader.download(new GenericUrl(uploadedFile.getDownloadUrl()), out);
}

From source file:com.github.valentin.fedoskin.fb2me.desktop.drive.DriveSample.java

License:Apache License

/** Downloads a file using either resumable or direct media download. */
private static void downloadFile(boolean useDirectDownload, File uploadedFile) throws IOException {
    // create parent directory (if necessary)
    java.io.File parentDir = new java.io.File(DIR_FOR_DOWNLOADS);
    if (!parentDir.exists() && !parentDir.mkdirs()) {
        throw new IOException("Unable to create parent directory");
    }//from  w  w  w  . j av  a 2s  .c  om
    OutputStream out = new FileOutputStream(new java.io.File(parentDir, uploadedFile.getTitle()));
    Drive.Files.Get get = drive.files().get(uploadedFile.getId());
    MediaHttpDownloader downloader = get.getMediaHttpDownloader();
    downloader.setDirectDownloadEnabled(useDirectDownload);
    downloader.setProgressListener(new FileDownloadProgressListener());
    downloader.download(new GenericUrl(uploadedFile.getDownloadUrl()), out);
}

From source file:com.mrmq.uyoutube.data.Captions.java

License:Apache License

/**
 * Downloads a caption track for a YouTube video. (captions.download)
 *
 * @param captionId The id parameter specifies the caption ID for the resource
 * that is being downloaded. In a caption resource, the id property specifies the
 * caption track's ID./*  www.  ja va  2 s .  c  o m*/
 * @throws IOException
 */
private static void downloadCaption(String captionId) throws IOException {
    // Create an API request to the YouTube Data API's captions.download
    // method to download an existing caption track.
    Download captionDownload = youtube.captions().download(captionId).setTfmt(SRT);

    // Set the download type and add an event listener.
    MediaHttpDownloader downloader = captionDownload.getMediaHttpDownloader();

    // Indicate whether direct media download is enabled. A value of
    // "True" indicates that direct media download is enabled and that
    // the entire media content will be downloaded in a single request.
    // A value of "False," which is the default, indicates that the
    // request will use the resumable media download protocol, which
    // supports the ability to resume a download operation after a
    // network interruption or other transmission failure, saving
    // time and bandwidth in the event of network failures.
    downloader.setDirectDownloadEnabled(false);

    // Set the download state for the caption track file.
    MediaHttpDownloaderProgressListener downloadProgressListener = new MediaHttpDownloaderProgressListener() {
        @Override
        public void progressChanged(MediaHttpDownloader downloader) throws IOException {
            switch (downloader.getDownloadState()) {
            case MEDIA_IN_PROGRESS:
                System.out.println("Download in progress");
                System.out.println("Download percentage: " + downloader.getProgress());
                break;
            // This value is set after the entire media file has
            //  been successfully downloaded.
            case MEDIA_COMPLETE:
                System.out.println("Download Completed!");
                break;
            // This value indicates that the download process has
            //  not started yet.
            case NOT_STARTED:
                System.out.println("Download Not Started!");
                break;
            }
        }
    };
    downloader.setProgressListener(downloadProgressListener);

    OutputStream outputFile = new FileOutputStream("captionFile.srt");
    // Download the caption track.
    captionDownload.executeAndDownloadTo(outputFile);
}

From source file:de.jlo.talendcomp.google.drive.DriveHelper.java

License:Apache License

private void downloadByUrl(String fileDownloadUrl, String localFilePath, boolean createDirs) throws Exception {
    checkPrerequisits();/*from  www . j  a  va 2  s .co  m*/
    lastDownloadedFilePath = null;
    lastDownloadedFileSize = 0;
    File localFile = new File(localFilePath);
    if (createDirs && localFile.getParentFile().exists() == false) {
        if (localFile.getParentFile().mkdirs() == false) {
            throw new Exception("Unable to create parent directory: " + localFile.getParent());
        }
    }
    OutputStream fileOut = new BufferedOutputStream(new FileOutputStream(localFile));
    try {
        MediaHttpDownloader downloader = new MediaHttpDownloader(HTTP_TRANSPORT,
                driveService.getRequestFactory().getInitializer());
        downloader.setDirectDownloadEnabled(false);
        downloader.setProgressListener(new MediaHttpDownloaderProgressListener() {

            @Override
            public void progressChanged(MediaHttpDownloader downloader) throws IOException {
                info("File status: " + downloader.getDownloadState());
                info("Bytes downloaded:" + downloader.getNumBytesDownloaded());
            }

        });
        downloader.download(new GenericUrl(fileDownloadUrl), fileOut);
        if (fileOut != null) {
            fileOut.flush();
            fileOut.close();
            fileOut = null;
        }
        lastDownloadedFilePath = localFile.getAbsolutePath();
        lastDownloadedFileSize = localFile.length();
    } catch (Exception e) {
        if (fileOut != null) {
            fileOut.flush();
            fileOut.close();
            fileOut = null;
        }
        Thread.sleep(200);
        if (localFile.canWrite()) {
            System.err.println("Download failed. Remove incomplete file: " + localFile.getAbsolutePath());
            localFile.delete();
        }
        throw e;
    }
}

From source file:de.pfabulist.googledrive.GoogleDriveElsewhere.java

License:BSD License

@Override
public void get(String id, long version, OutputStream os) {

    try {/*  ww  w. j  a va 2  s . c om*/
        File metadata = drive.files().get(id).execute();
        if (!metadata.getTitle().equals("" + version)) {
            Log.info("no such version");
            return;
        }
        MediaHttpDownloader downloader = new MediaHttpDownloader(httpTransport,
                drive.getRequestFactory().getInitializer());
        downloader.setDirectDownloadEnabled(true); // todo false for large files ?
        downloader.setProgressListener(new FileDownloadProgressListener());
        downloader.download(new GenericUrl(metadata.getDownloadUrl()), os);
    } catch (IOException e) {
        throw u(e);
    }
}

From source file:google.drive.example.v2.cmdline.DriveSample.java

License:Apache License

/** Downloads a file using either resumable or direct media download. */
private static void downloadFile(boolean useDirectDownload, File uploadedFile) throws IOException {
    // create parent directory (if necessary)
    java.io.File parentDir = new java.io.File(DIR_FOR_DOWNLOADS);
    if (!parentDir.exists() && !parentDir.mkdirs()) {
        throw new IOException("Unable to create parent directory");
    }/* w w  w .j  a  v  a 2 s  .  co m*/

    // OutputStream out = new FileOutputStream(new java.io.File(parentDir, uploadedFile.getTitle()));
    OutputStream out = new FileOutputStream(new java.io.File(parentDir, uploadedFile.getName()));

    MediaHttpDownloader downloader = new MediaHttpDownloader(httpTransport,
            drive.getRequestFactory().getInitializer());
    downloader.setDirectDownloadEnabled(useDirectDownload);
    downloader.setProgressListener(new FileDownloadProgressListener());
    // downloader.download(new GenericUrl(uploadedFile.getDownloadUrl()), out);
}

From source file:net.nharyes.drivecopy.srvc.DriveSdoImpl.java

License:Apache License

@Override
public EntryBO downloadEntry(TokenBO token, EntryBO entry) throws SdoException {

    try {//from www  . j  a  v a  2  s  .  c om

        // get file
        Drive service = getService(token);
        Get get = service.files().get(entry.getId());
        MediaHttpDownloader downloader = new MediaHttpDownloader(httpTransport,
                service.getRequestFactory().getInitializer());
        downloader.setDirectDownloadEnabled(false);
        downloader.setProgressListener(fileDownloadProgressListener);
        File file = get.execute();

        // check download URL and size
        if (file.getDownloadUrl() != null && file.getDownloadUrl().length() > 0) {

            // download file
            FileOutputStream fout = new FileOutputStream(entry.getFile());
            downloader.download(new GenericUrl(file.getDownloadUrl()), fout);
            fout.flush();
            fout.close();

            // return entry
            entry.setMd5Sum(file.getMd5Checksum());
            return entry;

        } else {

            // the file doesn't have any content stored on Drive
            throw new ItemNotFoundException(String.format(
                    "Remote file with id '%s' doesn't have any content stored on Drive", entry.getId()));
        }

    } catch (IOException ex) {

        // re-throw exception
        throw new SdoException(ex.getMessage(), ex);
    }
}

From source file:org.blom.martin.stream2gdrive.Stream2GDrive.java

License:Apache License

public static void download(Drive client, HttpTransport ht, String root, String remote, String local,
        boolean progress, float chunkSize) throws IOException {
    OutputStream os;/*from  w  ww  .  j  a  v  a2 s  . com*/

    if (local.equals("-")) {
        os = System.out;
    } else {
        File file = new File(local);

        if (file.exists()) {
            throw new IOException(String.format("The local file '%s' already exists", file));
        }

        os = new FileOutputStream(file);
    }

    String link = findFile(client, remote, root == null ? "root" : root).getDownloadUrl();

    MediaHttpDownloader dl = new MediaHttpDownloader(ht, client.getRequestFactory().getInitializer());

    dl.setDirectDownloadEnabled(false);
    dl.setChunkSize(calcChunkSize(chunkSize));

    if (progress) {
        dl.setProgressListener(new ProgressListener());
    }

    dl.download(new GenericUrl(link), os);
}