""" S3 functions ============ List all s3 functions. """ import boto3 def list_buckets(): """ List all buckets in s3. """ s3 = boto3.resource('s3') for bucket in s3.buckets.all(): print(bucket.name) def list_myfolder(mybucket_name, myfolder_name): """ List all object under my folder. Args: mybucket_name (str): My Bucket Name. myfolder_name (str): My folder name. """ s3 = boto3.resource('s3') bucket = s3.Bucket(mybucket_name) for obj in bucket.objects.all(): # list objects begining with myfolder_name if obj.key[0:len(myfolder_name)] == myfolder_name: print('Object = {} in {} Bucket'.format( obj.key, obj.bucket_name)) def upload_myfile(mybucket_name, myfolder_name, mysource_name, mytarget_name): """ Upload my file to my folder in the given bucket_name Args: mybucket_name(str): My Bucket Name. myfolder_name(str): My Folder Name. mysource_name(str): My Source File Name in local. mytarget_name(str): My Target file Name to be uploaded to s3 """ s3 = boto3.resource('s3') upload_file_name = myfolder_name + '/' + mytarget_name print('Resource File to upload to s3: {}'.format(mysource_name)) # Upload a txt file to the bucket "dev-cucumbers" at key-name s3.Object(mybucket_name, upload_file_name).upload_file(mysource_name) print('{} has been uploaded to {} in {} as {}'.format( mysource_name, myfolder_name, mybucket_name, mytarget_name)) def find_myfile_location(mybucket_name, myfolder_name, mytarget_name): """ List the file that looks for. Args: mybucket_name(str): My Bucket Name. myfolder_name(str): My Folder Name. mytarget_name(str): My Target file Name to be uploaded to s3 """ s3 = boto3.resource('s3') bucket = s3.Bucket(mybucket_name) searchfile_name = myfolder_name + '/' + mytarget_name print('Research {} under {}:'.format(mytarget_name, mybucket_name)) for obj in bucket.objects.all(): if searchfile_name in obj.key: print('--- {} is found.'.format(obj.key)) print('--- {} is under {}/ in {} bucket'.format( mytarget_name, myfolder_name, mybucket_name))