GithubHelp home page GithubHelp logo

zeeshanejaz / synchole Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 1.0 159 KB

Archive your data to AWS Glacier (BYO Subcscription)

License: MIT License

C# 100.00%
storage aws aws-glacier object-storage archive backup backup-utility media pictures videos personal family-data

synchole's Introduction

SyncHole

SyncHole Title Image

If you are anything like me, you are hoarding huge amounts of data that you cringe at letting go. You know like everything from rare mp3s ๐ŸŽง, music videos that once aired on MTV ๐Ÿ“บ, home movies ๐Ÿก, DSLR raw images ๐Ÿ“ธ. The problem is that all this data-hoarding eats away at your precious local storage space.

SyncHole to the rescue!

SyncHole is a drop-in archive ๐Ÿ“ฆ app. It monitors a sync-directory ๐Ÿ—ƒ to pick-up files and upload them to BYO cloud storage. Once the file is uploaded, it is deleted from your local storage to reclaim space. Don't worry, they are not gone forever. You can always recover them from the cloud storage.

Features

  1. Multipart chunk upload for background transfers
  2. Resume functionality for interrupted files

SyncHole App Screenshot

AWS S3 Glacier

At the moment, only AWS S3 Glacier is supported, but you can add support for other cloud storage providers by implementing the IStorageClient interface. AWS Glacier โ›ฐ is a cheap data archival service that doesn't cost you an arm and a leg. You can upload the data right-away, but retrieval has some delay i.e., if you don't want to spend big bucks ๐Ÿ’ธ. This type of delay is fine for archival purposes. You can read more about AWS Glacier here.

Configuration

SyncHole App reads the configuration from the appsettings.json file. Even though its pretty straight forward, let me just list the configuration properties here.

Property Description
AWSCredentials:AccessKeyId AWS IAM account key used for authentication. Read here how to generate a new IAM Account for Glacier.
AWSCredentials:AccessSecretKey AWS IAM access secret key used for authentication. See more above.
AWSCredentials:ServiceEndpoint The service endpoint indicating which data center location to use. See a list of endpoints here.
SyncOptions:SyncDirectory The directory to monitor for synchronization.
SyncOptions:SyncFilter File filter for querying files, e.g. *.mp3
SyncOptions:VaultNameFormat Creation date of files is used to create new archive vaults. Use this property to set the format e.g., yyyy-MM-dd.
SyncOptions:IgnoreRegex Regular expression for ignoring certain files e.g., ^.*db$.

How to Run ๐Ÿš€

SyncHole App is built as a generic aspnet host, which means it doesn't have Http services and is a bare-bone application host. You can run SyncHole App from the project directory using the dotnet run command. For creating portable execution package, follow these steps.

  1. Run the restore command dotnet restore
  2. Run the build command for compilation dotnet build
  3. Publish to create the release package dotnet publish
  4. Now locate the release folder and execute the app dotnet .\SyncHole.App.dll

synchole's People

Contributors

dependabot[bot] avatar zeeshanejaz avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

fahdi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.