U Vϳ`%@s`ddlZddlZddlZddlZddlZedZe dZ ddZ ddZ ddZ d d ZdS) Ns3cCstdd}t}|rd}|dD],}|r$||dkr$|d}t|dq$|rptd|d|d qtd |d n td dS) Nz Search S3 bucket in your accountrZBucketsNamezListing existing **z** buckets containing **z ** stringz'No matching buckets found containing **z,Provide string to search for listing buckets)st text_input s3_clientZ list_bucketswritesuccesswarninginfo)searchresponseZ buckets_foundbucketrJ/Users/msehgal/Developer/cloud-experiments/api/streamlit_experiments/s3.pysearch_buckets s   rc Csbd}d}d}d}tdd}t|}tdd}tdd}|rLt|}nd}|rT|jD]}|jdd} || 7}|d7}d } |sd } n||jkrd } | r|s|d7}|| 7}t |jd | d d q`| r`| |kr`|d7}|| 7}t |jd | d d q`|r.t d|ddd|dt d|d|ddd|dn t ddS)Nrz9S3 bucket name (public bucket or private to your account)rz6(optional) Filter bucket contents with matching stringz9(optional) Match files up to size in MB (0 for all sizes)0rFTz (z3.0fzMB)zMatched file size is **z3.1fz GB** with **z** files Bucket **z** total size is **z$Provide bucket name to list contents) rr s3_resourceBucketintobjectsallsizekeyr r r ) Z total_size_gbZ total_filesZ match_size_gbZ match_filesrZbucket_resourcematchZsize_mbrZ key_size_mbZ list_checkrrrlist_bucket_contentssB       &rc Cstdd}|rztj|dWnLtjjk rl}z*td|d|jddWYdSd}~XYnXt d|d n t d dS) NzS3 bucket name to creater)rrz** could not be created. ErrorMessagezThe S3 bucket **z9** successfully created or already exists in your accountz$Provide unique bucket name to create) rrr create_bucketbotocore exceptionsZ ClientErrorerrorrr r )rerrrr!Ds  r!cCsBtdd}tdd}tdtdd}|r4|r4|r4tj|||dddd iid iid }|d D]}d |krtjt |d d  ddd}qjd|krjtdt |dddddddtdt |dddddddtdt |dddddddqjt|n t ddS)NzS3 bucket namerzCSV File path and namez+Example: `SELECT * FROM s3object s LIMIT 5`z SQL statementZSQLZCSVZFileHeaderInfoZUseZJSON)rKey ExpressionZExpressionTypeZInputSerializationZOutputSerializationZPayloadZRecordszutf-8T)linesStatsz Scanned: ZDetailsZ BytesScannedrz5.2fMBz Processed: ZBytesProcessedz Returned: Z BytesReturnedz3Provide S3 bucket, CSV file name, and SQL statement) rrr text_arearZselect_object_contentpd read_jsonioStringIOdecoderr )rcsvsqlZs3_select_resultseventdfrrr s3_selectPs,      $,,. r5) streamlitrZboto3r"pandasr,r.clientrresourcerrrr!r5rrrrs  (