{"id":4,"title":"s3synchrony","independent":false,"description":"S3Synchrony is a Python package designed to facilitate efficient file synchronization across users working on an AWS S3 prefix. Developed by Sevan Brodjian at the Ameren Innovation Center @ UIUC, the package aims to streamline the process of file creation, deletion, and modification for collaborative projects.\r\n\r\nThe package is built using Python 3 and relies on essential libraries like hashlib, datetime, pandas, boto3, botocore, and pyperclip. At its core, S3Synchrony offers three main functions: get_supported_platforms, smart_sync, and reset_all. While it currently supports AWS S3, the package is designed for easy expansion to other database systems.\r\n\r\nThe smart_sync function is the centerpiece of the package, automatically handling data synchronization for users. It determines the platform being used and instantiates the appropriate class to establish a connection and synchronize data. Each platform requires specific keyword arguments, and the minimum requirement for S3 is \"aws_bkt\" and \"aws_prfx\". The package maintains a .S3 folder in the data directory that stores relevant CSV files and text files for monitoring data changes and storing necessary information.\r\n\r\nS3Synchrony is capable of detecting newly created, deleted, or modified files, prompting the user to upload these changes to S3. Once uploaded, other collaborators will be notified to download the updates and contribute their modifications. Deletion prompts allow users to confirm their actions, and any issues during the process are logged for easy troubleshooting.\r\n\r\nThe reset_all function enables users to return local and remote directories to their original state after confirming their decision. This process removes S3Synchrony services until the .S3 folders are recreated.","start":"2021-07-01","end":"2022-01-15","img":"https://imgur.com/5uuZzFa.png","link":"https://github.com/SevanBrodjian/s3synchrony","slug":"s3synchrony","topic":[5,7,8],"association":[1]}