Submit
Path:
~
/
/
usr
/
lib
/
python2.7
/
site-packages
/
boto
/
gs
/
File Content:
resumable_upload_handler.pyc
� �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 Z d d l m 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 d S( i����N( t md5( t configt UserAgent( t AWSAuthConnection( t InvalidUriError( t ResumableTransferDisposition( t ResumableUploadException( t KeyFilet ResumableUploadHandlerc B s� e Z d Z e j e e j e j f Z d Z d d d � Z d � Z d � Z d � Z d � Z d � Z d � Z d d d � Z d � Z d � Z d d � Z d � Z d � Z d � Z d � Z e d d � Z d d d d � Z RS( i i i����c C sD | | _ | | _ d | _ d | _ | r7 | j � n d | _ d S( s Constructor. Instantiate once for each uploaded file. :type tracker_file_name: string :param tracker_file_name: optional file name to save tracker URI. If supplied and the current process fails the upload, it can be retried in a new process. If called with an existing file containing a valid tracker URI, we'll resume the upload from this URI; else we'll start a new resumable upload (and write the URI to this tracker file). :type num_retries: int :param num_retries: the number of times we'll re-try a resumable upload making no progress. (Count resets every time we get progress, so upload can span many more than this number of retries.) i N( t tracker_file_namet num_retriest server_has_bytest Nonet tracker_urit _load_tracker_uri_from_filet upload_start_point( t selfR R ( ( sD /usr/lib/python2.7/site-packages/boto/gs/resumable_upload_handler.pyt __init__@ s c C s� d } z� y5 t | j d � } | j � j � } | j | � Wna t k r} } | j t j k r� d | j | j f GHq� n% t k r� } d | | j f GHn XWd | r� | j � n Xd S( Nt rsH Couldn't read URI tracker file (%s): %s. Restarting upload from scratch.sX Invalid tracker URI (%s) found in URI tracker file (%s). Restarting upload from scratch.( R t openR t readlinet stript _set_tracker_urit IOErrort errnot ENOENTt strerrorR t close( R t ft urit e( ( sD /usr/lib/python2.7/site-packages/boto/gs/resumable_upload_handler.pyR [ s c C s� | j s d Sd } yK t j t j | j t j t j Bd � d � � } | j | j � Wd QXWn5 t k r� } t d | j | j f t j � � n Xd S( sM Saves URI to tracker file if one was passed to constructor. Ni� t ws� Couldn't write URI tracker file (%s): %s. This can happenif you're using an incorrectly configured upload tool (e.g., gsutil configured to save tracker files to an unwritable directory)( R R t ost fdopenR t O_WRONLYt O_CREATt writeR R R R R t ABORT( R R R ( ( sD /usr/lib/python2.7/site-packages/boto/gs/resumable_upload_handler.pyt _save_tracker_uri_to_files s c C s| t j | � } | j j � d k s. | j rA t d | � � n | | _ | j | _ d | j | j f | _ d | _ d S( s� Called when we start a new resumable upload or get a new tracker URI for the upload. Saves URI and resets upload state. Raises InvalidUriError if URI is syntactically invalid. t httpt httpss Invalid tracker URI (%s)s %s?%si N( R'