Setup New repo

  1. init git:

    git init
  2. init git annex:

    git annex init local
  3. Add S3 Remote named public-s3

    git annex initremote public-s3 type=S3 encryption=none chunk=0
  4. Add file to git annex

    git annex add [big-file]
  5. copy current directory to public-s3 remote

    git annex copy --to public-s3
  6. remove local copy—will only remove if already in remote—nothing lost

    git annex drop [file]
  7. Commit

    git -a -m 'initial commit'

Setup NFS as remote using Rsync over ssh

  1. Add Rsync as unencrypted remote

    git annex initremote nas type=rsync encryption=none
  2. Add file to nas

    git annex copy --to=nas

Pull down photos

eval (~/.amazonrc)
git annex enableremote public-s3
git annex get [whatever]

Make available to the public (after public s3 setup):

git annex addurl --file [filename] "$(git annex lookupkey [filename])"

List remotes and remote info

Show remotes

git annex enableremote

Show remote info

git annex info [remote-name]
git annex info tylercipriani-raw

Finding info about files

Find a file:

git annex whereis [filename]

Adding a file to

eval $(~/.amazonrc)
git annex copy --to=photo-site [file]
git annex addurl --file [file] "$(git annex lookupkey [filename])"

Sharing via Amazon s3


Make amazon bucket with policy:

  "Version": "2008-10-17",
  "Statement": [
      "Sid": "AllowPublicRead",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::[bucket-name]/*"

Put creds out into the environment

eval (~/.amazonrc)
cd into repo:
cd /home/tyler/Projects/Timelapse