Saravanan666/pypi-org huggingface dataset:
Package: s3-encryption
[![Build Status](https://travis-ci.org/boldfield/s3-encryption.svg?branch=master)](https://travis-ci.org/boldfield/s3-encryption)[![PyPI version](https://badge.fury.io/py/s3-encryption.svg)](https://badge.fury.io/py/s3-encryption)s3-encryption is a thin wrapper around the `boto3` S3 client.  It facilitates client-side encryptionwhich is compatible to that provided by the Ruby aws-sdk-core-resources.Functionality is currently limited to that demonstrated below:Upload encrypted content in python:```pythonimport boto3from s3_encryption.client import S3EncryptionClientREGION = 'us-west-2'BUCKET = 'testing.stuff.bucket's3_key = 'testing.txt's3e = S3EncryptionClient(encryption_key=plaintext_key, region_name=REGION)s3e.put_object(Body='this is a test', Bucket=BUCKET, Key='testing.txt')s3e.client.put_object(Body=encoded_key, Bucket=BUCKET, Key=s3_key + '.key')```Download encrypted content in python:```pythonREGION = 'us-west-2'BUCKET = 'testing.stuff.bucket's3_key = 'testing.txt's3 = boto3.client('s3', region_name=REGION)encoded_key = s3.get_object(Bucket=BUCKET, Key=s3_key + '.key')plaintext_key = decode_encryption_key(encoded_key)s3e = S3EncryptionClient(encryption_key=plaintext_key, region_name=REGION)print s3e.get_object(Bucket=BUCKET, Key=s3_key)>> 'this is a test'```Download encrypted content in ruby:```rubyREGION = 'us-west-2'BUCKET = 'testing.stuff.bucket's3_key = 'testing.txt's3c = Aws::S3::Client.newres = s3c.get_object(:bucket => BUCKET, :key => s3_key + '.key')enc_key = res[:body].readplaintext_key = decode_encryption_key(enc_key)s3ec = Aws::S3::Encryption::Client.new(:encryption_key => plaintext_key)res = s3ec.get_object(:bucket => bucket, :key => s3_key)body = res[:body].readputs body>> 'this is a test'```
Package: s3-encryption-sdk
Client-side encryption for S3You can find the source onGitHub.Getting StartedRequired PrerequisitesPython 3.6+InstallationNoteIf you have not already installedcryptography, you might need to install additional
prerequisites as detailed in thecryptography installation guidefor your operating
system.$ pip install s3-encryption-sdkUsageimportboto3froms3_encryption_sdkimportEncryptedClientfroms3_encryption_sdk.materials_providersimportKmsMaterialsProvidermaterials_provider=KmsMaterialsProvider(key_id="alias/YourAlias",client=boto3.client("kms",region_name="us-east-1"),)s3=boto3.client("s3",region_name="us-east-1")crypto_s3=EncryptedClient(client=s3,materials_provider=materials_provider,)key="4711"plaintext="foo bar"crypto_s3.put_object(Bucket=bucket.name,Key=key,Body=plaintext,)encrypted_obj=s3.get_object(Bucket=bucket.name,Key="object",)decrypted_obj=crypto_s3.get_object(Bucket=bucket.name,Key="object",)assertplaintext!=encrypted_obj["Body"].read().decode("utf8")assertplaintext==decrypted_obj["Body"].read().decode("utf8")
Package: s3-endpoint-parse
s3-endpoint-parseFlexibly parses well-formed S3 URL/URIs, including legacy formats and new
fips / dualstack formats, and for Chinese (中国) regions.Returns a dictionary describing the endpoint:{"match":bool,# True if library matched"protocol":string,# May be empty"bucket":string,# Set if match is True"key":string,# May be empty"region":string,# May be empty}APIdefparse(url:string)->dictPrimary export, parses input and returns documented dictionary.Examplesfroms3_endpoint_parseimportparse# All below:  s3["match"] is Trues3=parse("https://s3.amazonaws.com/my-bucket/my/cool/file.png")asserts3["protocol"]=="https"asserts3["bucket"]=="my-bucket"asserts3["region"]==""asserts3["key"]=="my/cool/file.png"s3=parse("s3://my-bucket.s3.us-east-1.amazonaws.com.cn/my/cool/file.png")asserts3["protocol"]=="s3"asserts3["bucket"]=="my-bucket"asserts3["region"]=="us-east-1"asserts3["key"]=="my/cool/file.png"s3=parse("http://my-bucket.s3-us-east-1.amazonaws.com/my/cool/file.png")asserts3["protocol"]=="http"asserts3["bucket"]=="my-bucket"asserts3["region"]=="us-east-1"asserts3["key"]=="my/cool/file.png"s3=parse("https://my-bucket.s3-fips.dualstack.us-east-1.amazonaws.com/my/cool/file.png")asserts3["protocol"]=="https"asserts3["bucket"]=="my-bucket"asserts3["region"]=="us-east-1"asserts3["key"]=="my/cool/file.png"See many more examples in the/tests/folder
Package: s3env
# S3envManipulate a key/value JSON object file in an S3 bucket through the CLI. Built to ease setting [remote enviroment variables with Zappa](https://github.com/Miserlou/Zappa#remote-environment-variables).## Usage### Quick start.```$ s3env prod getAPI_KEY=secretFOO=bar$ s3env prod set:BONJOUR=helloKey successfully set.Current configuration is...API_KEY=secretFOO=barBONJOUR=hello$ s3env prod rm:BONJOIRKey removed.Current configuration is...API_KEY=secretFOO=bar```### Getting started.Install via...```pip install s3env```Create an `s3env.json`.```{"prod": "s3://zappa-private-github-pages-dev/prod.json"}````Run commands.```$ s3env --help```## DevelopmentAfter pulling down the repo locally, create a virtualenv, then install by running...```pip install -e .```## DeploymentPublish to pypi with...```python setup.py sdist upload -r pypi```
Package: s3etag
usage: s3etag [-h] [--chunksize size] files [files ...]

s3etag - compute AWS S3 Etags

positional arguments:
  files             filenames

optional arguments:
  -h, --help        show this help message and exit
  --chunksize size  multipart_chunksize used for upload in bytes or with a
                    size suffix KB, MB, GB, or TB (default: 8MB)
Package: s3-extend
Scratch 3 OneGPIO Extension ServersControl your favorite physical computing device using Scratch 3.Quick Intallation Intructions:For Arduino, Circuit Playground Express, ESP-8266, Robohat-MM1, and Raspberry Pi
Pico boards, install the server firmware. See thePreparing Your Micro-Controllersection
of the User's Guide.Launch the Scratch3 Editor using either the online or offline sites described
in the in theReady, Set, Go/Launch The Scratch3 Editorsection of the User's Guide.Select your extension and start coding!.For full installation and usage, read theInstallation and User's Guide.
Package: s3filesmanager
An AWS S3 Files online manager base on python/djangoTo use this app follow these steps:Create your working environmentInstall DjangoPut the s3filesmanager into INSTALLED_APPSInstall additional dependenciessyncdb and migrate (if you use South)Installpip install s3filesmanagerDependencydjango-model-utilsdjango-bootstrap-toolkitPILsorl-thumbnailbotodjango-storagesINSTALLED_APPSINSTALLED_APPS = (
    ...
    'south',
    'bootstrap_toolkit',
    'sorl.thumbnail',
    's3filesmanager',
)SettingsAWS_ACCESS_KEY_ID = 'YOUR_AWS_ACCESS_KEY_ID'
AWS_SECRET_ACCESS_KEY = 'YOUR_AWS_SECRET_ACCESS_KEY'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_STORAGE_BUCKET_NAME = 'YOUR_AWS_STORAGE_BUCKET_NAME'
ASSETS_URL = 'https://BUCKET_NAME.stimuli.s3-website-us-east-1.amazonaws.com'
MEDIA_ROOT = ASSETS_URL + 'media/'
MEDIA_URL = ASSETS_URL + 'media/'
AWS_S3_SECURE_URLS = False
AWS_QUERYSTRING_AUTH = Falseurls.pyurl(r'^', include('s3filesmanager.urls')),template tags{% load s3filesmanager_tags %}

<!-- Put the s3filesmanager tag in a div which you want to show the files manager -->
<div>
    {% s3filesmanager %}
</div>

<!-- Put the s3filesmanager_js tag in html head, but need to load jquery and bootstrap at first -->
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="/static/js/bootstrap.min.js"></script>
{% s3filesmanager_js %}JavascriptThe app use some javascript lib for upload filesjQueryBootstrappluploadUnderscoreSponsorSponsored by www.xperiment.mobi
Package: s3-folder-backup
S3 Folder BackupHave capacity to back up your server files and folders to AWS S3import s3_folder_backup 

config =

  {

    "DIR": "",# your server/folder dir

    "AWS_ACCESS_KEY_ID": "", #aws access key

    "AWS_SECRET_ACCESS_KEY": "",#aws secret key

    "DELETE_LOCAL": "" #want to delete backup file from local system

  }

s3_folder_backup(config).upload()You can easily upload folders with it.
Package: s3head
s3heads3headis theheadcommand for AWS S3.Installpip install s3headIf you use pipx, it's nice to install by it.pipx iinstall s3headUsageBefore using, create.s3cfgfile bys3cmd --configure. Sees3cmdUsage: s3head [OPTIONS] URI

Options:
  -n, --num-lines INTEGER   lines
  -c, --count-byte INTEGER  bytes
  --config TEXT             Path to the `.s3cfg`
  --help                    Show this message and exit.For example,s3head -n 100 s3://your_bucket/your_file.txt
Package: s3headerize
s3headerizeA Python package for setting HTTP headers on Amazon Web Services (AWS) S3 objects.Header values are configured per-name extension, with an optional catch-all if the object does not match any rules.PrerequisitesPython 3.x is required.LimitationsOnlyCache-ControlandContent-Typeheaders are currently supported.Configuring the headers and their valuesThe headers to set are configured in a YAML file with a list of rules.For example:-header:Cache-Controlwhen:-extension:.htmlthen:max-age=300, public-extension:.cssthen:max-age=604800, publicelse:max-age=31536000, publicThe result of this will be:Every.htmlobject will receive aCache-Controlheader with valuemax-age=300, public.Every.cssobject will receive aCache-Controlheader with valuemax-age=604800, public.All other objects will receive aCache-Controlheader with valuemax-age=31536000, public.Theelsestatement is optional. For example:-header:Content-Typewhen:-extension:.woff2then:font/woff2The result of this will be:Every.woff2object will receive aContent-Typeheader with valuefont/woff2.TheContent-Typeheader (or lackthereof) on all other objects will be unchanged.There's a sample file atsample-header-rules.yaml.UsageInstallationpipinstalls3headerizeCommand-linepython-ms3headerize--bucket<buckettoupdate>--header-rules<pathtorulesfile>[--dry-run][--key-prefix<optionalkeyprefix>][--log-level<optionalloglevel>]For example:python-ms3headerize--header-rules./headers-rules.yaml--bucketmy-websiteIn codeTo run against a bucket:froms3headerizeimportBucketHeaderizerrules=[{'header':'Cache-Control','when':[{'extension':'.html','then':'max-age=300, public'}],'else':'max-age=31536000, public'},{'header':'Content-Type','when':[{'extension':'.woff2','then':'font/woff2'}]}]bucket_headerizer=BucketHeaderizer(header_rules=rules)bucket_headerizer.update(bucket='my-website')To run against specific keys:froms3headerizeimportObjectHeaderizerrules=[{'header':'Cache-Control','when':[{'extension':'.html','then':'max-age=300, public'}],'else':'max-age=31536000, public'},{'header':'Content-Type','when':[{'extension':'.woff2','then':'font/woff2'}]}]object_headerizer=ObjectHeaderizer(bucket='my-website',header_rules=rules,key='index.html')object_headerizer.update()DevelopmentInstalling dependenciespipinstall-e.[dev]Running testspythontest.py
Package: s3i
DocumentationThis package contains everything you need to get started with the S3I. The documentation of the S3I package and its demos can be foundhere.Installations3i is available on PyPI:python -m pip install s3iDevelopmentThe s3i source code is hosted ongitlab.ContributingFeel free to contribute to this project. For more details on submitting changes seeCONTRIBUTING.md
Package: s3id
S3IDpip3 install s3idS3 Object ETags are calculated with various heuristics and across various formats.  If an S3 object is downloaded and subsequently uploaded to a new path, its ETag value is not guaranteed to remain consistent unless it's upload strategy remains consistent.S3ID is a simple library that calculates an ETag from a local file over a series of common S3 partition sizes to determine if a match exists with a corresponding S3 object ETag.If a match is found, infomation about how to properly upload this equivalent local file to an alternate S3 location is returned to maintain consistent ETag values.UsageThe following examples demonstrate that a corresponding ETag match, from data at a local file path (2nd parameter), was found with the remote S3 object Etag provided (1st parameter).Each match displays various information about how that S3 object was previously uploaded.Single-Part Match>>> from s3id import S3ID
>>> from pathlib import Path
>>> S3ID.unpack("f1c9645dbc14efddc7d8a322685f26eb", Path("/tmp/test_10mb.txt"))
{
	'match': True, 
	'signature': '"f1c9645dbc14efddc7d8a322685f26eb"',
	'upload_strategy': 'single_part'
}The corresponding remote S3 object was uploaded as asingle object.Multi-Part Match>>> from s3id import S3ID
>>> from pathlib import Path
>>> S3ID.unpack("669fdad9e309b552f1e9cf7b489c1f73-2", Path("/tmp/test_10mb.txt"))
{
	'match': True, 
	'signature': '"669fdad9e309b552f1e9cf7b489c1f73-2"',
	'partition_in_bytes': 8388608,
	'upload_strategy': 'multi_part'
}The corresponding remote S3 object was uploaded as amulti-part objectwith a 2 partitions of size: 8388608 bytes (8MB).Mismatch>>> from s3id import S3ID
>>> from pathlib import Path
>>> S3ID.unpack("669fdad9e309b552f1e9cf7b489c1f73-3", Path("/tmp/test_10mb.txt"))
{
	'match': False
}A corresponding ETag was not found with the local file path presented.Parameters:etagType:strRequired: TrueDescription: An ETag string for an S3 Object in various formats:Single-part ETag (without a hyphen)Multi-part ETag (with a hypen) which represents a composite ETag calculations of N chunks in the format (<hash>-<number_of_chunks>)pathType:PathRequired: TrueDescription: A pathlib.Path object of a local file (i.e.Path(<path/to/local/file>)) to compare against the previousetagparametersthreshold_in_bytesType: intRequired: FalseDefault:5242880(5MB)Description: When choosing theDEFAULTstrategy, this value determines when to create aSINGLE_PARTETag orMULTI_PARTcomposite ETag.partition_set_in_bytesType:Set[int]Required: FalseDefault:{5242880,8388608,15728640,16777216}#5MB, 8MB, 15MB, 16MBDescription: A list of chunk_sizes (as number of bytes) to iterate against (i.e. {1*1024*1024,2*1024*1024, ...}).  For each value provided, an ETag will be calculated againstpathand checked against parameteretag.Return Value:Type:Dict[str, Union[int, str]]
Package: s3imageresizer
s3imageresizerA python module to import and resize pictures into amazon S3 storage.SynopsisTypical usecase: fetch a bunch of image and generate thumbnails of various
sizes for each of them, stored in S3.from s3imageresizer import S3ImageResizer

from boto import s3
s3_conn = s3.connect_to_region(...)

# Initialize an S3ImageResizer:
i = S3ImageResizer(s3_conn)

urls = [
    'http://www.gokqsw.com/images/picture/picture-3.jpg',
    'http://www.gokqsw.com/images/picture/picture-4.jpg'
]

for url in urls:

    # Fetch image into memory
    i.fetch(url)

    # Apply the image EXIF rotation, if any
    i.orientate()

    # Resize this image, store it to S3 and return its url
    url1 = i.resize(
        width=200
    ).store(
        in_bucket='my-images',
        key_name='image-w200-jpg'
    )

    # Do it again, with a different size
    url2 = i.resize(
        height=400
    ).store(
        in_bucket='my-images',
        key_name='image-h200-jpg'
    )More explanationFor method parameters, see the code (there isn't much of it ;-)S3ImageResizer does all image operations in-memory, without writing images to
disk.S3ImageResizer uses PIL, has reasonable defaults for downsizing images and
handle images with alpha channels nicely.Installations3imageresizer requires Pillow, which in turn needs external libraries.
On ubuntu, you would for example need:sudo apt-get install libjpeg8 libjpeg8-dev libopenjpeg-devThenpip install s3imageresizerSource codehttps://github.com/erwan-lemonnier/s3-image-resizerAuthorErwan Lemonniergithub.com/pymacarongithub.com/erwan-lemonnierwww.linkedin.com/in/erwan-lemonnier/
Package: s3import
Introductions3import is a tool for importing data from S3 to an SX Cluster. For each source
S3 bucket s3import creates a volume on the cluster and copies the keys from the
bucket to the new volume.s3import uses boto (https://pypi.python.org/pypi/boto) and python-sxclient
(https://pypi.python.org/pypi/sxclient) and works in Python 2.7.InstallationTo install s3import, run:$ pip install s3importAlternatively, to install s3import from source, run:$ pip install <path>or$ pip install -e <path>replacing<path>with path to the source.ConfigurationS3Configuration for connecting with an S3 service is obtained from boto config
file. Your file should contain at least:aws_access_key_idin[Credentials]section, with your S3 access key
ID as a value;aws_secret_access_keyin[Credentials]section, with your S3 secret
access key as a value.Additionally, if you want to connect to an S3 service other than Amazon S3,
your file should contain:s3_hostin[Credentials]section, with hostname of the S3 service you
want to access;s3_portin[Credentials]section, with port which the S3 service
uses.By default, connection with S3 is secured by SSL and the SSL certificates are
verified. If you wish to change any of these behaviours, addis_secure = Falseandhttps_validate_certificates = Falserespectively to the[Boto]section of your config file.In order for boto to read the config file automatically, you should name it.botoand place it in your home directory. You can also set the environment
variableBOTO_CONFIGwith the path to the configuration file you want to
use prior to running s3import.Be wary that boto tries to read configuration options from other locations than
boto config file. For example, if a file~/.aws/credentialsexists, boto
will read credential settings from there. For more information seehttp://docs.pythonboto.org/en/latest/boto_config_tut.html.Below is an example content of a configuration file:[Credentials]
s3_host = s3.example.com
s3_port = 8443
aws_access_key_id = s3_user
aws_secret_access_key = secret_key

[Boto]
is_secure = True
https_validate_certificates = TrueSX and import configurationConfiguration for connecting with an SX Cluster and importing the buckets is
obtained from s3import command-line arguments. You can display their
descriptions by runnings3import--help.UsageAfter installation, a command-line tool nameds3importwill become
available. Run:$ s3import --helpfor a list of available options.
Package: s3io
Abouts3io is a minimalistic python module which provides file object access to data on S3.All data manipulations are done via temporary local files - so you will actually work with local temp file which is a file object with all its methods supported.Just keep in mind these facts:Reading: the whole file will be downloaded to local temporary location at entering the context.Writing: temp file will be provided at entering the context. Actual saving to S3 will be performed at exit from context. Thus such methods asflushwill not influence the process of saving to S3.DependenciesbotoExampless3io is intended to be used via context manager only.There are three ways to provide access to s3:Directly providings3_connection.Providing credentials:aws_access_key_idandaws_secret_access_key.Providingprofile_name. This method is recommended to use. Seeboto docsfor more info.Reading file using existing S3 connection:import s3io

s3 = boto.connect_s3()
with s3io.open('s3://<bucket>/<key>', s3_connection=s3) as s3_file:
    contents = s3_file.read()Reading file using credentials:credentials = dict(
    aws_access_key_id='<ACCESS_KEY>',
    aws_secret_access_key='<SECRET_KEY>',
)
with s3io.open('s3://<bucket>/<key>', **credentials) as s3_file:
    contents = s3_file.read()Reading file using profile:with s3io.open('s3://<bucket>/<key>', profile_name='<profile>') as s3_file:
    contents = s3_file.read()Writing file using profile:with s3io.open('s3://<bucket>/<key>', mode='w', profile_name='<profile>') as s3_file:
    s3_file.write('Some data.')ExceptionsPossible exceptions:s3io.BucketNotFoundErrors3io.KeyNotFoundErrors3io.UrlParseError
Package: s3iotools
Welcome tos3iotoolsDocumentationUsageCopy local file to s3 and download file object from s3 to local is easy:froms3iotoolsimportS3FileObjects3obj=S3FileObject(bucket="my-bucket",key="hello.txt",path="hello.txt")# get started, now we don't have file either on local or on s3ifs3obj.path_obj.exists():s3obj.path_obj.remove()asserts3obj.exists_on_local()isFalseasserts3obj.exists_on_s3()isFalses3obj.path_obj.write_text("hello world",encoding="utf-8)asserts3obj.exists_on_local()isTrues3obj.copy_to_s3()asserts3obj.exists_on_s3()isTrues3obj.path_obj.remove()asserts3obj.exists_on_local()isFalses3obj.copy_to_local()asserts3obj.exists_on_local()isTrueYou can manipulate s3 backedpandas.DataFrameeasily:importboto3importpandasaspdfroms3iotoolsimportS3Dataframesession=boto3.Session(profile_name="xxx")s3=session.resource("s3")bucket_name="my-bucket"s3df=S3Dataframe(s3_resource=s3,bucket_name=bucket_name)s3df.df=pd.DataFrame(...)s3df.to_csv(key="data.csv")s3df.to_csv(key="data.csv.gz",gzip_compressed=True)s3df_new=S3Dataframe(s3_resource=s3,bucket_name=bucket_name,key="data.csv")s3df_new.read_csv()s3df_new.df# access datas3df_new=S3Dataframe(s3_resource=s3,bucket_name=bucket_name,key="data.csv.gz")s3df_new.read_csv(gzip_compressed=True)s3df_new.df# access datajson IO is similar.s3df=S3Dataframe(s3_resource=s3,bucket_name=bucket_name)s3df.df=pd.DataFrame(...)s3df.to_json(key="data.json.gz",gzip_compressed=True)s3df_new=S3Dataframe(s3_resource=s3,bucket_name=bucket_name,key="data.json.gz")s3df_new.read_json(gzip_compressed=True)s3df_new.df# access dataparquet is a columnar storage format, which is very efficient for OLAP query. You can just put data on S3, then use AWS Athena to query parquet files. parquet IO in s3iotools is easy:s3df=S3Dataframe(s3_resource=s3,bucket_name=bucket_name)s3df.df=pd.DataFrame(...)s3df.to_parquet(key="data.parquet",compression="gzip")s3df_new=S3Dataframe(s3_resource=s3,bucket_name=bucket_name,key="data.parquet")s3df_new.read_parquet()s3df_new.df# access datas3iotools doesn’t automatically installpyarrow, you can install it withpip install pyarrow.Installs3iotoolsis released on PyPI, so all you need is:$pipinstalls3iotoolsTo upgrade to latest version:$pipinstall--upgrades3iotools
Package: s3-kvs
s3-kvsA python wrapper for an S3 backed key-value store.UsageImport and create a client instance, setting a domain and optionally a namespace:from s3_kvs import ReadOnlyClientclient = ReadOnlyClient(domain=’kvs.example.com’)ORclient = ReadOnlyClient(domain=’kvs.example.com’, namespace=’test’)Then use then use the getitem notation to retrieve values from the key store:client[‘foo’]> ‘bar’Or, use the get method to provide a default if no matching value is found:client.get(‘foo’, ‘oops’)> ‘oops’By default returned values are text. You can also treat them as json and automatically parse them:text_client = ReadOnlyClient(domain=’kvs.example.com’)client[‘foo’]> ‘{“bar”: “baz”}’  # a json stringjson_client = ReadOnlyClient(domain=’kvs.example.com’, value_format=’json’)client[‘foo’]> {‘bar’: ‘baz’}  # a python dict
Package: s3-last-modified-objects
s3_last_modified_objects with bucket, path and last_modified_dateUtilities for latest files from s3 bucketParameters:Args:
            s3client:
            boto3 S3 client
            bucket:
            Name of the S3 bucket.
            prefix:
            Only fetch objects whose key starts with this prefix (optional).
            suffix:
            Only fetch objects whose keys end with this suffix (optional).
            last_modified_date: Only yield objects with LastModified dates greater or equal to this value (optional).

    Returns:
            Dictionary objects for each qualifying S3 object through a generator. The dict includes:
            key
                    the object key (name)
            size
                    the size of the object in bytes (integer)
            last_modified
                    the datetime object of which has modified based on parameter last_modified_date or by defualt 1 day before current dateExample Usage
.. code-block:: pythonfrom s3_last_modified_objects import s3_objects
    from datetime import datetime,timedelta
    import boto3

    bucket='bucket_customer'
    path='products'
    last_modified_date =(datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d')  
    s3client = boto3.client('s3')
    object_dict= s3_objects.latest_files(
            s3client=s3client,
            bucket=bucket,
            prefix=path,
            last_modified_date=last_modified_date)
    for obj in object_dict:
        print(obj)