m Kc@s(dkZdkZdkZdkZdkZdkZdkZdkZdkZdk Z dZ he d<e dRR;R9((Rtbuild_url_basess   (t__name__t __module__R?R<R=R@t staticmethod(((RR7ns  tLocationcBstZdZdZRS(NtEU(RARBR3tDEFAULTRE(((RRDstAWSAuthConnectioncBstZeedeidZhdZe i hdZ dZ hhdZ hdZhdZhdZhd Zhd Zhd Zhd Zhd ZhdZhdZhdZdZddhhdhdZdZRS(NcCsO|pt|}n||_||_||_||_||_||_dS(N(R>tPORTS_BY_SECURITYt is_securetaws_access_key_idtselfR!R:R;(RKRJR!RIR:R>R;((Rt__init__s     cCst|id|dh|S(NtPUTR(tResponseRKt _make_requestRR(RKRR((Rt create_bucketscCsJ|tijo d}nd|d}t|id|dh||S(NRs,s.RM( RRDRFtbodyRNRKRORR(RKRRRRQ((Rtcreate_located_buckets cCs|id|dhhS(NtHEADR(RKROR(RKR((Rtcheck_bucket_existsscCst|id|d||S(NtGETR(tListBucketResponseRKRORtoptionsR(RKRRWR((Rt list_bucketscCst|id|dh|S(NtDELETER(RNRKRORR(RKRR((Rt delete_bucketsc CsKt|tpt|}nt|id||h||i |i S(NRM( t isinstancetobjecttS3ObjectRNRKRORRRtdataR)(RKRRR\R((Rtputs cCst|id||h|S(NRU(t GetResponseRKRORRR(RKRRR((RtgetscCst|id||h|S(NRY(RNRKRORRR(RKRRR((Rtdeletesc Cs(t|id|dhdd<|S(NRURR(R`RKRORR3R(RKRR((Rtget_bucket_loggingsc Cs+t|id|dhdd<||S(NRMRR(RNRKRORR3Rtlogging_xml_doc(RKRRdR((Rtput_bucket_loggingscCs|i|d|S(NR(RKtget_aclRR(RKRR((Rtget_bucket_aclsc Cs(t|id||hdd<|S(NRUR(R`RKRORRR3R(RKRRR((RRfscCs|i|d||S(NR(RKtput_aclRtacl_xml_documentR(RKRRiR((Rtput_bucket_aclsc Cs+t|id||hdd<||S(NRMR(RNRKRORRR3RRi(RKRRRiR((RRhs   cCst|idddh|S(NRUR(tListAllMyBucketsResponseRKROR(RKR((Rtlist_all_my_bucketssc Cs%t|id|dhdd<S(NRURR(tLocationResponseRKRORR3(RKR((Rtget_bucket_locationsRcCsNd}|djo |i}nQ|itijod||if}n'|itijo |}n |i}d} |djo%|itijo| d|7} n| dt i |7} t |o| dt|7} n|i}d||if}xGto?|oti|}nti|}t||} |i| |||||i|| || |i}|i!djp|i!djo|Sn|i"d} | p|Sn|i$t%i%| \}}} } } }|d jo t}n(|d jo t*}nt+d | | o| d| 7} qqWdS( NRs%s.%ss/%st?s%s:%di,iRthttpthttpssNot http/https: (,R:RRKR;R7R<R=tpathR?RRRtlenRR6RIR>thosttTruethttplibtHTTPSConnectiont connectiontHTTPConnectionR,RR)R(t_add_aws_auth_headerRtrequestR^t getresponsetresptstatust getheaderRtreadturlparsetschemetparamstquerytfragmenttFalset invalidURL(RKRRRRRR^R)R}RrRR(RRRRRtRIR:Rx((RROsN          !  cCso|idp tidti|dRHRIRJRKR!R8R:R;RtDEFAULT_EXPIRES_INt%_QueryStringAuthGenerator__expires_inR3t"_QueryStringAuthGenerator__expirest server_name(RKRJR!RIR:R>R;((RRL2s          cCs||_d|_dS(N(t expires_inRKRR3R(RKR((Rtset_expires_inIs cCs||_d|_dS(N(RRKRR3R(RKR((Rt set_expiresMs cCs|id|dh|S(NRMR(RKt generate_urlRR(RKRR((RRPQscCs|id|d||S(NRUR(RKRRRWR(RKRRWR((RRXTscCs|id|dh|S(NRYR(RKRRR(RKRR((RRZWscCsEt|tpt|}n|id||ht||i S(NRM( R[R\R]RKRRRR,RR)(RKRRR\R((RR_Zs cCs|id||h|S(NRU(RKRRRR(RKRRR((RRaescCs|id||h|S(NRY(RKRRRR(RKRRR((RRbhscCs"|id|dhdd<|S(NRURR(RKRRR3R(RKRR((RRckscCs"|id|dhdd<|S(NRMRR(RKRRR3R(RKRRdR((RRenscCs|i|d|S(NR(RKRfRR(RKRR((RRgqsRcCs"|id||hdd<|S(NRUR(RKRRRR3R(RKRRR((RRftscCs|i|d||S(NR(RKRhRRiR(RKRRiR((RRjwscCs"|id||hdd<|S(NRMR(RKRRRR3R(RKRRRiR((RRh{scCs|idddh|S(NRUR(RKRR(RKR((RRl~scCs&|i|||}||id S(NRo(RKRRRtfull_urltindex(RKRRR((Rt make_bare_urlsc Csd}|idjotti|i}n*|idjot|i}ndt||||||}t|i|}ti|i|i|i||i} | dti|7} ||d<||d<|i|d<| dt|7} | S(NisInvalid expires states/%st SignaturetExpirestAWSAccessKeyIds?%s(RRKRR3tintRRRRRRRRt canonical_strR&R!tencoded_canonicalR7R@R8R:R>R;turlRRRJR6( RKRRRRRRRRR((RRs'   (RARBRRuRR3R7R<RLRRRPRXRZR_RaRbRcReRgRfRjRhRlRR(((RR.s&             R]cBstZhdZRS(NcCs||_||_dS(N(R^RKR)(RKR^R)((RRLs (RARBRL(((RR]stOwnercBstZdddZRS(NRcCs||_||_dS(N(tidRKt display_name(RKRR((RRLs (RARBRL(((RRst ListEntrycBs#tZdddddddZRS(NRicCs:||_||_||_||_||_||_dS(N(RRKt last_modifiedtetagtsizet storage_classtowner(RKRRRRRR((RRLs      (RARBR3RL(((RRstCommonPrefixEntrycBstZddZRS(NRcCs ||_dS(N(tprefixRK(RKR((Rt__inits(RARBt_CommonPrefixEntry__init(((RRstBucketcBstZdddZRS(NRcCs||_||_dS(N(tnameRKt creation_date(RKRR((RRLs (RARBRL(((RRsRNcBstZdZRS(NcCs_||_|i|_|idjo|io|i|_nd|i|if|_dS(Ni,s%03d %s(t http_responseRKRRQR~tmessagetreason(RKR((RRLs  (RARBRL(((RRNsRVcBstZdZRS(NcCsti|||idjot}tii |i ||i |_ |i |_ |i |_ |i|_|i|_|i|_|i|_|i|_|i|_n g|_ dS(Ni,(RNRLRKRR~tListBucketHandlerthandlertxmltsaxt parseStringRQtentriestcommon_prefixesRtmarkerRt is_truncatedt delimitertmax_keyst next_marker(RKRR((RRLs         (RARBRL(((RRVsRkcBstZdZRS(NcCs\ti|||idjo/t}tii |i ||i |_ n g|_ dS(Ni,( RNRLRKRR~tListAllMyBucketsHandlerRRRRRQR(RKRR((RRLs  (RARBRL(((RRksR`cBstZdZdZRS(NcCsAti|||i}|i|}t|i ||_ dS(N( RNRLRKRtmsgtresponse_headerstget_aws_metadataR)R]RQR\(RKRRR)((RRLs cCsZh}xM|iD]?}|iito#||||tt<||=qqW|S(N(R)RRthkeyR R R+Rs(RKRRR)((RRs (RARBRLR(((RR`s RmcBstZdZRS(NcCsSti|||idjo/t}tii |i ||i |_ ndS(Ni,( RNRLRKRR~tLocationHandlerRRRRRQR(RKRR((RRLs  (RARBRL(((RRmsRcBs,tZdZdZdZdZRS(NcCsyg|_d|_d|_g|_d|_d|_d|_d|_ t |_ d|_ d|_ d|_t |_dS(NRi(RKRR3t curr_entryt curr_textRtcurr_common_prefixRRRRRRRRtis_echoed_prefix_set(RK((RRLs            cCs^|djot|_n>|djot|i_n|djot|_ndS(NtContentsRtCommonPrefixes(RRRKRRRRR(RKRtattrs((Rt startElement s    cCsK|djo|ii|in|djo|ii|in|djo|i|i_n|djo|i|i_ n|djo|i|i_ n|djot |i|i_ nq|djo|i|ii _nN|djo|i|ii _n+|d jo|i|i_n |d jo|i|_n|d jo|io|i|i_n|d jo|i|_t|_n|d jo|i|_n|d jo|idj|_n^|djo|i|_nA|djot |i|_n|djo|i|_nd|_dS(NRRtKeyt LastModifiedtETagtSizetIDt DisplayNamet StorageClasstNametPrefixtMarkert IsTruncatedttruet DelimitertMaxKeyst NextMarkerR(RRKRR4RRRRRRRRRRRRRRRRuRRRRR(RKR((Rt endElementsH                  cCs|i|7_dS(N(RKRtcontent(RKR((Rt characters;s(RARBRLRRR(((RRs  'RcBs,tZdZdZdZdZRS(NcCsg|_d|_d|_dS(NR(RKRR3RR(RK((RRL@s  cCs!|djot|_ndS(NR(RRRKR(RKRR((RREs cCsh|djo|i|i_nE|djo|i|i_n%|djo|ii|indS(NRt CreationDateR(RRKRRRRR4(RKR((RRIs    cCs ||_dS(N(RRKR(RKR((RRQs(RARBRLRRR(((RR?s   RcBs,tZdZdZdZdZRS(NcCsd|_d|_dS(Ntinit(R3RKRtstate(RK((RRLVs cCsM|idjo0|djod|_d|_qId|_n d|_dS(NRtLocationConstraintt tag_locationRtbad(RKRRR(RKRR((RRZs     cCs7|idjo|djo d|_n d|_dS(NRRtdoneR(RKRR(RKR((RRbs cCs'|idjo|i|7_ndS(NR(RKRRR(RKR((RRgs(RARBRLRRR(((RRUs   ()RRRvtreR"tsysRRRtxml.saxRRRuRRHR+R R3RR&R,R6R7RDRGRR]RRRRRNRVRkR`RmRtContentHandlerRRR(#RRHRR]RR7RDRRRR,RVRRRR6R&RRGRRRR+R RvRNRR"R`RkRRRRmR((RRo sD          6   p   D