owncloud s3

Hell0 world .

Très rapidement ne passant si vous souhaitez faire un « Stockage externe » avec OwnCloud vers aws S3 il y a une petite subtilité à avoir 🙂 Après la synchro ou la copie récursive vous devez récupérer tout les répertoire et leurs path complet et les tagger avec aws cli.

Pour ma part j’ai voulu me faire un petit script au pif qui tourne dans un screen et qui me sature pas la bande passante (aws s3 et les appel cli sont très très très grourment)

Du coup voilà … :

#!/bin/bash
############
# CONFIG
############
S3='LE_NOM_DE_VOTRE_REPO_S3'
############
# Help
############
usage (){
echo $0 [DIRECTORY TO SYNC WITH S3]
exit 1
}
############
# CHECK
############
[[ -z "$1" ]] || [[ ! -d "$1" ]] && usage

############
# MAIN
############

# Generation de la liste des répertoire
cd "$1"
find . -type d > /tmp/REPALL

# Et on boucle sur les fichiers 
while read REP
do
   find "$REP" -type f -maxdepth 1 > /tmp/Fileliste
   rREP=$(echo $REP | sed "s#^.\/##g")
   
   while read FILE
      do
         rFILE=$(echo $FILE | sed "s#^.\/##g")
         # On fait la copie
         aws s3 cp "${FILE}" s3://${S3}/"${rFILE}"
   
      done < /tmp/Fileliste
   # on tag sur S3 le réperoitre comme ... répertoire :)
   aws s3api put-object --bucket $S3 --key "$rREP"/
done < /tmp/REPALL