コード例 #1
0
 def _enqueue_range_download_tasks(self,
                                   filename,
                                   remove_remote_file=False):
     chunksize = find_chunksize(filename.size, self.chunksize)
     num_downloads = int(filename.size / chunksize)
     context = tasks.MultipartDownloadContext(num_downloads)
     create_file_task = tasks.CreateLocalFileTask(context=context,
                                                  filename=filename)
     self.executor.submit(create_file_task)
     for i in range(num_downloads):
         task = tasks.DownloadPartTask(part_number=i,
                                       chunk_size=chunksize,
                                       result_queue=self.result_queue,
                                       service=filename.service,
                                       filename=filename,
                                       context=context,
                                       io_queue=self.write_queue)
         self.executor.submit(task)
     complete_file_task = tasks.CompleteDownloadTask(
         context=context,
         filename=filename,
         result_queue=self.result_queue,
         params=self.params,
         io_queue=self.write_queue)
     self.executor.submit(complete_file_task)
     self._multipart_downloads.append((context, filename.dest))
     if remove_remote_file:
         remove_task = tasks.RemoveRemoteObjectTask(filename=filename,
                                                    context=context)
         self.executor.submit(remove_task)
     return num_downloads
コード例 #2
0
ファイル: s3handler.py プロジェクト: phamcong/alienator-plf
 def _do_enqueue_range_download_tasks(self, filename, chunksize,
                                      num_downloads, context,
                                      remove_remote_file=False):
     for i in range(num_downloads):
         task = tasks.DownloadPartTask(
             part_number=i, chunk_size=chunksize,
             result_queue=self.result_queue, filename=filename,
             context=context, io_queue=self.write_queue)
         self.executor.submit(task)