git-annex/doc/tips/flickrannex.mdwn

62 lines
2 KiB
Markdown

# Latest version 0.1.10
Hook program for gitannex to use flickr as backend.
This allows storing any type of file on flickr, not only images and movies.
# Requirements:
python2
Credit for the flickr api interface goes to: <http://stuvel.eu/flickrapi>
Credit for the png library goes to: <https://github.com/drj11/pypng>
Credit for the png tEXt patch goes to: <https://code.google.com/p/pypng/issues/detail?id=65>
# Install
Clone the git repository in your home folder.
git clone git://github.com/TobiasTheViking/flickrannex.git
This should make a ~/flickrannex folder
# Setup
Run the program once to set it up.
cd ~/flickrannex; python2 flickrannex.py
After the setup has finished, it will print the git-annex configure lines.
# Configuring git-annex
git config annex.flickr-hook '/usr/bin/python2 ~/flickrannex/flickrannex.py'
git annex initremote flickr type=hook hooktype=flickr encryption=shared
git annex describe flickr "the flickr library"
# Notes
## Unencrypted mode
The photo name on flickr is currently the GPGHMACSHA1 version.
Run the following command in your annex directory
git annex wanted flickr uuid include=*.jpg or include=*.jpeg or include=*.gif or include=*.png
## Encrypted mode
The current version base64 encodes all the data, which results in ~35% larger filesize.
I might look into yyenc instead. I'm not sure if it will work in the tEXt field.
Run the following command in your annex directory
git annex wanted flickr exclude=largerthan=30mb
## Including directories as tags
Get get each of the directories below the top level git directory added as tags to uploads:
git config annex.flickr-hook 'GIT_TOP_LEVEL=`git rev-parse --show-toplevel` /usr/bin/python2 %s/flickrannex.py'
In this case the image:
/home/me/annex-photos/holidays/2013/Greenland/img001.jpg
would get the following tags: "holidays" "2013" "Greenland"
(assuming "/home/me/annex-photos" is the top level in the annex...)
Caveat Emptor - Tags will *always* be NULL for indirect repos - we don't (easily) know the human-readable file name.