Skip to content

FileZap is a lightweight, short term file storage platform. Send files from your phone and retreive them on any device via a web interface

License

Notifications You must be signed in to change notification settings

barrybarrette/filezap-server

Repository files navigation

filezap-server

Build Status Coverage Status

FileZap is a very simple temporary file storage platform that allows users to send files from their mobile device and then access them via a web browser on any device. This project is the backend service that handles user management and file storage.

The Android app is now available on Google Play

Release Notes

FAQ

How do I get started?

  1. Register for an account
  2. Install the Android app
  3. Enter your username and password in the app
  4. Use any app on your Android device that has the share menu and select FileZap to send files to your account
  5. Access your files on any device on FileZap.net

Are my files secure?

Your files will be stored on BackBlaze currently and though this may change in the future, any content manager I implement will store the data securely. You can read about BackBlaze security here

Is there a size limit?

At this time there is no size limit per account or per file. However, there is a 4 MB download limit - see #19. Additionally, in the interest of full disclosure, I'm using the BackBlaze free tier which has a 10GB limit, so if I get a sudden influx of active users it will cut off and I'll need to evaluate costs if that happens.

Contributing

Project setup

  1. Install Python 3.6 Other Python versions may work, I am developing on 3.6
  2. Clone this repo: git clone https://github.com/whitebarry/filezap-server.git && cd filezap-server
  3. Create a virtual environment:
  • Linux: python3 -m venv venv && source venv/bin/activate
  • Windows: python -m venv venv && venv\scripts\activate
  1. Install dependencies: pip install -r requirements.txt
  2. Verify install by running bolt ut. This will execute the unit tests and confirm you are set up. While developing, use bolt ct to run the unit tests continuously.

You can start a local server by running python main.py from within your virtual environment. However, you will get errors for any actions you take without having the proper environment set up. The following environment variables must be set:

  • AWS_ACCESS_KEY_ID={your aws api key id}
  • AWS_SECRET_ACCESS_KEY={your aws api key secret}
  • BACKBLAZE_ACCOUNT_ID={your backblaze account id}
  • BACKBLAZE_BUCKET_ID={the bucket id on backblaze you want to store files in}
  • BACKBLAZE_MASTER_APP_ID={backblaze api key id that has the createKeys permission}
  • BACKBLAZE_MASTER_SECRET_KEY={backblaze api key secret}
  • USER_REGISTRATION_ENABLED=True
  • FILEZAP_ENV=Production

Environment setup

AWS

  • Create an AWS account
  • Create an IAM user with the following permissions:
  • Create an access key and secret, save these as AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY

BackBlaze

  • Create a BackBlaze account
  • Save your account id as BACKBLAZE_ACCOUNT_ID
  • Create a bucket called filezap-server, make it private and save your bucket id as BACKBLAZE_BUCKET_ID
  • Generate a master application key, save these as BACKBLAZE_MASTER_APP_ID and BACKBLAZE_MASTER_SECRET_KEY

About

FileZap is a lightweight, short term file storage platform. Send files from your phone and retreive them on any device via a web interface

Resources

License

Stars

Watchers

Forks

Packages

No packages published