Giter VIP home page Giter VIP logo

android-davsync's Introduction

DavSync (or net.zekjur.davsync to be specific)

DavSync screenshot

After installing this Android App, you can share images from your gallery to your WebDAV server. Furthermore, every picture you take with the camera will automatically be uploaded to your WebDAV server — unless you turn that off, of course.

Why would you want this? If you don’t have automatic Picasa uploads enabled due to privacy concerns or other reasons, you still might want to backup/archive every picture you take. Also, if you run a WebDAV server on your workstation, automatically synchronizing your pictures is much better than having to import them manually with gphoto or other programs.

Project status and contributions

This app works for me. That means, I will most likely not touch it, except when I want to add a feature that I want.

In case you want to have a specific feature implemented, DO NOT FILE A FEATURE REQUEST. I will close such tickets immediately, unless they come with code. The rule is: you want it, you send a pull request. I might still decline it if it doesn’t fit into my vision of what the app should do.

Installation and configuration

Install DavSync from Google play or compile it yourself. Then, chose “DavSync” in your application drawer. Set up the following fields:

  • WebDAV URL: the full URL to your WebDAV server, including the trailing slash. Example:

    http://my-dav-server.example.com/pictures/
    
  • WebDAV username/password: It is strongly recommended to protect your WebDAV server with a username/password. DavSync supports basic authentication only.

Ideas for enhancements

For the following features, pull requests will be accepted:

  • Implement strong SSL certificate validation. I have no clue how the Apache HTTP Client API verifies SSL by default (I suspect not at all).
  • Implement SSL certificate pinning. Instead of trusting certificate hierarchies, allow the user to pin a specific certificate by fingerprint, no matter whether it is self-signed or not.
  • Better error handling: Currently, it is not possible to retry/schedule a retry when uploading a file fails.
  • Enhance the Preferences activity to allow configuration of multiple WebDAV servers, add a popup dialog with server selection in the ShareActivity.
  • Beautify the Preferences activity to show the current values of WebDAV URL/username underneath the label (see comment in SettingsActivity.java.
  • Add an option to resize images before uploading to save bandwidth.
  • A better icon would be great.

Example lighttpd setup

In case you are not yet running a WebDAV server, simply apt-get install lighttpd lighttpd-mod-webdav, then add a virtual host definition like this one:

server.modules = (
  # …
  "
  "mod_auth",
  "mod_webdav",
)

$HTTP["host"] == "webdav.example.com" {
  server.document-root = "/home/michael/pictures/dav/"

  webdav.activate = "enable"
  webdav.is-readonly = "disable"
  webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db"

  auth.backend = "htpasswd"
  auth.backend.htpasswd.userfile = "/home/michael/pictures/.htpasswd-dav"
  auth.require = ("/" =>
    (
     "method" => "basic",
     "realm" => "My WebDAV server",
     "require" => "valid-user"
    )
  )
}

Then, chown www-data.www-data /home/michael/pictures/dav/ and you should be good to go. Use “cadaver” as a command line WebDAV client to verify your setup.

android-davsync's People

Contributors

breunigs avatar lecradle avatar stapelberg avatar

Watchers

 avatar  avatar

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.