Ejemplo n.º 1
0
 def download(self, filename, bucket_name, object_name):
     with open(filename, 'wb') as f:
         req = self.cloud.objects().get_media(
             bucket=bucket_name, object=object_name)
         downloader = MediaIoBaseDownload(f, req)
         done = False
         while done is False:
             status, done = downloader.next_chunk()
             print("Download {}%.".format(int(status.progress() * 100)))
Ejemplo n.º 2
0
 def download_file(self, source_id, fname, verbose=True):
     fpath = pathlib.Path(fname)
     request = self.service.files().get_media(fileId=source_id)
     with fpath.open('wb') as f:
         downloader = MediaIoBaseDownload(f, request)
         done = False
         while done is False:
             status, done = downloader.next_chunk()
             print(f'{int(status.progress())*100} downloaded')
def downloadTo(file_id, fileName):
    request = service.files().get_media(fileId=file_id)
    fh = io.FileIO(fileName, 'wb')
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print("Download %d%%." % int(status.progress() * 100))
    return done
Ejemplo n.º 4
0
def download_file(service, file_id):
    request = service.files().get_media(fileId=file_id)
    fh = io.BytesIO()
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print "Download %d%%." % int(status.progress() * 100)
    open(FILE_NAME, 'wb').write(fh.getvalue())
Ejemplo n.º 5
0
 def download_file(self, file_id, download_destination):
     request = self.service.files().get_media(fileId=file_id)
     with open(download_destination, "wb") as fh:
         downloader = MediaIoBaseDownload(fh, request)
         done = False
         while done is False:
             status, done = downloader.next_chunk()
             print
             "Download %d%%." % int(status.progress() * 100)
Ejemplo n.º 6
0
def download_photo(file_id):
    request = drive_service.files().get_media(fileId=file_id)
    fh = io.BytesIO()
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print ("Download %d%%." % int(status.progress() * 100))
    return fh.getvalue()
Ejemplo n.º 7
0
def get_file_stream(service, file_id):
    request = service.files().get_media(fileId=file_id)
    fp = io.BytesIO()
    downloader = MediaIoBaseDownload(fp, request, chunksize=CHUNKSIZE)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
    fp.seek(0)
    return fp
Ejemplo n.º 8
0
def download(drive_service, file_id):
    #file_id = '0BwwA4oUTeiV1UVNwOHItT0xfa2M'
    request = drive_service.files().get_media(fileId=file_id)
    fh = io.BytesIO()
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print("Download %d%%." % int(status.progress() * 100))
Ejemplo n.º 9
0
def initialize_upload(youtube,
                      file,
                      mimetype,
                      title,
                      description,
                      keywords=None,
                      category=22,
                      privacyStatus='private'):
    tags = None
    if keywords:
        tags = keywords.split(",")

    body = dict(snippet=dict(title=title,
                             description=description,
                             tags=tags,
                             categoryId=category),
                status=dict(privacyStatus=privacyStatus))

    fh = io.BytesIO()
    writer = io.BufferedWriter(fh)

    # try:
    #     os.mkfifo('my_fifo')
    # except FileExistsError:
    #     pass
    # fh = open('my_fifo', 'w', os.O_WRONLY|os.O_NONBLOCK)
    downloader = MediaIoBaseDownload(writer, file, chunksize=1024 * 1024)
    #o = os.open('my_fifo', os.O_RDONLY | os.O_NONBLOCK)
    reader = io.BufferedReader(fh)

    # Call the API's videos.insert method to create and upload the video.
    insert_request = youtube.videos().insert(
        part=",".join(body.keys()),
        body=body,
        # The chunksize parameter specifies the size of each chunk of data, in
        # bytes, that will be uploaded at a time. Set a higher value for
        # reliable connections as fewer chunks lead to faster uploads. Set a lower
        # value for better recovery on less reliable connections.
        #
        # Setting "chunksize" equal to -1 in the code below means that the entire
        # file will be uploaded in a single HTTP request. (If the upload fails,
        # it will still be retried where it left off.) This is usually a best
        # practice, but if you're using Python older than 2.6 or if you're
        # running on App Engine, you should set the chunksize to something like
        # 1024 * 1024 (1 megabyte).
        media_body=MediaIoBaseUpload(reader,
                                     chunksize=1024 * 1024,
                                     resumable=True,
                                     mimetype=mimetype))

    if "id" in insert_request:
        print("Video id", insert_request["id"])
    else:
        print("id not in insert_request")

    resumable_upload(insert_request, downloader, writer)
Ejemplo n.º 10
0
 def startdownload(_request):
     downloader = MediaIoBaseDownload(fh, _request)
     done = False
     while not done:
         status, done = downloader.next_chunk()
         try:
             msg.edit(user.getstr('drive_downloading_progress')
                      .format(p=int(status.progress() * 100)))
         except botogram.api.APIError:
             pass
Ejemplo n.º 11
0
def download_drive_file(service, file_id):
    request = service.files().get_media(fileId=file_id)
    file_path = file_id + '.tsv'
    fh = io.FileIO(file_path, mode='w')
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print("Download %d%%." % int(status.progress() * 100))
    return file_path
Ejemplo n.º 12
0
def _read_json_id(service, file_id):
    request = service.files().get_media(fileId=file_id)
    with io.BytesIO() as fh:
        downloader = MediaIoBaseDownload(fh, request)
        done = False
        while done is False:
            status, done = downloader.next_chunk()
        fh.seek(0)
        data = fh.read()
        return json.loads(data, encoding=METADATA_ENCODING)
Ejemplo n.º 13
0
    def download(self, service, dir, res, index):
        downloader = MediaIoBaseDownload(
            io.FileIO('output/{}/{}.txt'.format(dir, index + 1), 'wb'),
            service.files().export_media(fileId=res['id'],
                                         mimeType="text/plain"))
        done = False
        while done is False:
            status, done = downloader.next_chunk()

        service.files().delete(fileId=res['id']).execute()
def download_file(f):
    fid = f.get('id')
    name = f.get('name')
    create_folder('invoices')
    request = service.files().get_media(fileId=fid)
    with io.FileIO(os.path.join('invoices', name), 'wb') as fh:
        downloader = MediaIoBaseDownload(fh, request)
        done = False
        while done is False:
            status, done = downloader.next_chunk()
Ejemplo n.º 15
0
def export(drive_service, file_id, outtype):
    #file_id = '1ZdR3L3qP4Bkq8noWLJHSr_iBau0DNT4Kli4SxNc2YEo'
    request = drive_service.files().export_media(fileId=file_id,
                                                 mimeType=outtype)
    fh = io.BytesIO()
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print("Download %d%%." % int(status.progress() * 100))
Ejemplo n.º 16
0
def download(service, file_id):
    request1 = service.files().get_media(fileId=file_id)
    tmp_file = 'temp/temp_plano.pdf'
    fh = io.FileIO(tmp_file, 'wb')
    downloader = MediaIoBaseDownload(fh, request1)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
    fh.close()
    return tmp_file
    def file(self, file_id):

        request = self._service.files().get_media(fileId=file_id)
        fh = BytesIO()
        downloader = MediaIoBaseDownload(fh, request)
        done = False
        while done is False:
            status, done = downloader.next_chunk()
            # print "Download %d%%." % int(status.progress() * 100)
        return fh
Ejemplo n.º 18
0
def download(file_id):
    config = Config()
    drive_service = load_credentials(config)
    request = drive_service.files().get_media(fileId=file_id)
    fh = io.BytesIO()
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print("Download %d%%." % int(status.progress() * 100))
Ejemplo n.º 19
0
 def downloadFile(self, file_id, filePath):
     request = self.drive_service.files().get_media(fileId=file_id)
     fh = io.BytesIO()
     downloader = MediaIoBaseDownload(fh, request)
     done = False
     while done is False:
         status, done = downloader.next_chunk()
     with io.open(filePath, 'wb') as f:
         fh.seek(0)
         f.write(fh.read())
Ejemplo n.º 20
0
 def download_file(self, file_id):
     request = self.gdrive_service.files().get_media(fileId=file_id,
                                                     supportsAllDrives=True)
     fh = io.FileIO("file", "wb")
     downloader = MediaIoBaseDownload(fh, request)
     done = False
     while done is False:
         status, done = downloader.next_chunk()
         print(f"Download {int(status.progress()*100)}")
     print("File downloaded")
Ejemplo n.º 21
0
def download_file(output_dir, file_name, file_id):
    if not os.path.exists(output_dir):
        os.mkdir(output_dir)
    request = drive_service.files().get_media(fileId=file_id)
    fh = io.FileIO(output_dir + '/' + file_name, 'wb')
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print("Download {0}%.".format(int(status.progress() * 100)))
Ejemplo n.º 22
0
 def main():
     store = file.Storage('token.json')
     creds = store.get()
     if not creds or creds.invalid:
         flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
         creds = tools.run_flow(flow, store)
     service = build('drive', 'v3', http=creds.authorize(Http()))
     file_id = '***'
     request = service.files().get_media(fileId=file_id)
     fh = io.FileIO('timesheet.pdf', 'wb')
     downloader = MediaIoBaseDownload(fh, request)
     done = False
     while done is False:
         status, done = downloader.next_chunk()
         print('Timesheet updated. Opening...')
         print('------------------------------------------------')
     os.system("open "+"***")
     #Sends email to Operations
     done = input('Edit the document. Enter c when finsihed: ')
     if done == 'c':
         fromaddr = "[my email]"
         toaddr = "[Operations email]"
         msg = MIMEMultipart("alternative")
         msg['From'] = fromaddr
         msg['To'] = toaddr
         msg['Subject'] = "Timesheet"
         body = """\
         <html>
           <head></head>
           <body>
             <p>Hello!<br>
                 <br>
                 Here is my timesheet! Have a good one!<br>
                         <br>
                         <[HTML for email signature}>
                         </p>
                       </body>
         </html>
         """
         msg.attach(MIMEText(body, 'html'))
         filename = "timesheet.pdf"
         attachment = open("***", "rb")
         part = MIMEBase('application', 'octet-stream')
         part.set_payload((attachment).read())
         encoders.encode_base64(part)
         part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
         msg.attach(part)
         server = smtplib.SMTP('smtp-mail.outlook.com', 587)
         server.starttls()
         server.login(fromaddr, "[PASSWORD]")
         text = msg.as_string()
         server.sendmail(fromaddr, toaddr, text)
         server.quit()
         print('Submitted.')
         print('------------------------------------------------')            
    def download_file(self, client, fileName):
        #Create the folders if needed
        app_folder_id, key_folder_id = self.create_folders(client)

        file_id = 0
        response = client.files().list(
            q="'{0}' in parents and mimeType!='application/vnd.google-apps.folder'"
            .format(app_folder_id),
            spaces='drive',
            pageSize=1000,
            fields="nextPageToken, files(id, name)").execute()
        items = response.get('files', [])
        for item in items:
            if item['name'] == fileName:
                file_id = item['id']
        request = client.files().get_media(fileId=file_id)
        fh = io.FileIO(fileName, mode='wb')
        downloader = MediaIoBaseDownload(fh, request)
        done = False
        while done is False:
            status, done = downloader.next_chunk()
            print("Download %d%%." % int(status.progress() * 100))

        #Download the key file
        file_id = 0
        response = client.files().list(
            q="'{0}' in parents and mimeType!='application/vnd.google-apps.folder'"
            .format(key_folder_id),
            spaces='drive',
            pageSize=1000,
            fields="nextPageToken, files(id, name)").execute()
        items = response.get('files', [])
        for item in items:
            if item['name'] == "{}.key".format(fileName):
                file_id = item['id']
        request = client.files().get_media(fileId=file_id)
        fh = io.FileIO("{}.key".format(fileName), mode='wb')
        downloader = MediaIoBaseDownload(fh, request)
        done = False
        while done is False:
            status, done = downloader.next_chunk()
            print("Download %d%%." % int(status.progress() * 100))
Ejemplo n.º 24
0
    def _download_file(self, folder_id, drive_file, file_index, file_count):
        logging.debug('Downloading %s from Google Drive: ' %
                      str(drive_file['name']))

        max_retries = 3
        for retry in range(0, max_retries):
            try:
                request = self.drive.files().get_media(fileId=drive_file['id'])
                downloaded_file = open(self.dir + '/' + drive_file['name'],
                                       'w')
                downloader = MediaIoBaseDownload(downloaded_file, request)

                modified_time = self._touch(folder_id)
                done = False
                while self.running and not done:
                    if self._seconds_since(
                            modified_time
                    ) > 5 * 60:  # Heartbeat after 5 minutes download
                        modified_time = self._touch(folder_id)
                    status, done = downloader.next_chunk()
                    if not self.canceled:
                        self.listener.update_status({
                            'state':
                            'ACTIVE',
                            'step':
                            'DOWNLOADING',
                            'description':
                            "Downloaded %d%% of file %d of %d." %
                            (int(status.progress() * 100), file_index + 1,
                             file_count)
                        })
                if self.canceled:
                    self.listener.update_status({
                        'state': 'CANCELED',
                        'description': "Canceled"
                    })
                    return False  # Canceled
                self._delete(drive_file['id'])
                return True  # Succeeded
            except Exception:
                logger.exception('Download from Google Drive failed. file: ' +
                                 drive_file['name'] + ', retry: ' + str(retry))

        logger.exception('Giving up download from Google Drive after ' +
                         str(max_retries) + ' retries. file: ' +
                         drive_file['name'])
        self.listener.update_status({
            'state':
            'FAILED',
            'description':
            'Download from Google Drive failed'
        })
        self.stop()
        return False  # Failed
Ejemplo n.º 25
0
def downloadFile(file_id, filepath):
    request = drive_service.files().get_media(fileId=file_id)
    fh = io.BytesIO()
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print("Download %d%%." % int(status.progress() * 100))
    with io.open(filepath, 'wb') as f:
        fh.seek(0)
        f.write(fh.read())
Ejemplo n.º 26
0
def download_file(file_id, mimeType, filename):
    if "google-apps" in mimeType:
        # skip google files
        return
    request = drive_service.files().get_media(fileId=file_id)
    fh = io.FileIO(filename, 'wb')
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print ("Download %d%%." % int(status.progress() * 100))
Ejemplo n.º 27
0
def download_file(drive_service, file_id, filename):
    request = drive_service.files().get_media(fileId=file_id)
    fh = io.BytesIO()
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    # print('Downloading into {}'.format(filename))
    while done is False:
        status, done = downloader.next_chunk()
        # print("Download {}%.".format(int(status.progress() * 100)))
    with open(filename, 'wb') as f:
        f.write(fh.getvalue())
Ejemplo n.º 28
0
def download_file(service, file_id):
    req = service.files().get_media(fileId=file_id)
    f = io.BytesIO()
    downloader = MediaIoBaseDownload(f, req)
    done = False
    while not done:
        status, done = downloader.next_chunk()
        print('downloading: ', status.progress())
    # seek to the begining of the file and reuse
    f.seek(0)
    return f
Ejemplo n.º 29
0
def download_file(file_id, destination):
    request = drive_service.files().get_media(fileId=file_id)
    fh = BytesIO()
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while not done:
        status, done = downloader.next_chunk()
        print("Download {}.".format(int(status.progress() * 100)))
    with ioOpen(destination, 'wb') as f:
        fh.seek(0)
        f.write(fh.read())
Ejemplo n.º 30
0
def file_down(s, i):
    file_id = i["id"]
    file_name = i["name"]
    request = s.files().get_media(fileId=file_id)
    f = open(file_name, "w")
    downloader = MediaIoBaseDownload(f, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print("Download %d%%." % int(status.progress() * 100))
    f.close()