Submit
Path:
~
/
/
proc
/
thread-self
/
root
/
usr
/
lib
/
python2.7
/
site-packages
/
boto
/
s3
/
File Content:
resumable_download_handler.pyo
� �Wc @ s� d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d e f d � � YZ e d � Z d e f d � � YZ d S( i����N( t configt storage_uri_for_key( t AWSAuthConnection( t ResumableDownloadException( t ResumableTransferDisposition( t KeyFile( t Keyt ByteTranslatingCallbackHandlerc B s e Z d Z d � Z d � Z RS( s� Proxy class that translates progress callbacks made by boto.s3.Key.get_file(), taking into account that we're resuming a download. c C s | | _ | | _ d S( N( t proxied_cbt download_start_point( t selfR R ( ( sF /usr/lib/python2.7/site-packages/boto/s3/resumable_download_handler.pyt __init__? s c C s | j | j | | � d S( N( R R ( R t total_bytes_uploadedt total_size( ( sF /usr/lib/python2.7/site-packages/boto/s3/resumable_download_handler.pyt callC s ( t __name__t __module__t __doc__R R ( ( ( sF /usr/lib/python2.7/site-packages/boto/s3/resumable_download_handler.pyR 9 s c C sw t | t � r# | r# | j � j S| s8 | j � } n | j d t j � | j � } | ss | j | t j � n | S( sH Returns size of file, optionally leaving fp positioned at EOF. i ( t isinstanceR t getkeyt sizet tellt seekt ost SEEK_ENDt SEEK_SET( t fpt position_to_eoft cur_post cur_file_size( ( sF /usr/lib/python2.7/site-packages/boto/s3/resumable_download_handler.pyt get_cur_file_sizeH s t ResumableDownloadHandlerc B sz e Z d Z d Z e j e e j e j f Z d d d � Z d � Z d � Z d � Z d � Z d d e d d d � Z RS( s* Handler for resumable downloads. i c C s; | | _ | | _ d | _ | r. | j � n d | _ d S( s Constructor. Instantiate once for each downloaded file. :type tracker_file_name: string :param tracker_file_name: optional file name to save tracking info about this download. If supplied and the current process fails the download, it can be retried in a new process. If called with an existing file containing an unexpired timestamp, we'll resume the transfer for this file; else we'll start a new resumable download. :type num_retries: int :param num_retries: the number of times we'll re-try a resumable download making no progress. (Count resets every time we get progress, so download can span many more than this number of retries.) N( t tracker_file_namet num_retriest Nonet etag_value_for_current_downloadt _load_tracker_file_etagR ( R R R! ( ( sF /usr/lib/python2.7/site-packages/boto/s3/resumable_download_handler.pyR b s c C s� d } z� yU t | j d � } | j � j d � | _ t | j � | j k r] d | j GHn Wn= t k r� } | j t j k r� d | j | j f GHq� n XWd | r� | j � n Xd S( Nt rs sJ Couldn't read etag in tracker file (%s). Restarting download from scratch.sJ Couldn't read URI tracker file (%s): %s. Restarting download from scratch.( R"