Архитектура хранения картинок
ftp очень неудобный протокол вообще. Для каких-то операций я качаю архив, а потом `sudo cp -ruv `
И еще — мне кажется что id для картинки лишняя вещь — обычно я храню по имени файла по схеме 1:2 ( /n/am/name.jpg )
Требования взаимоисключающие :-) Когда большой объем + отказоустойчивость — это gridfs, hadoop, mofilefs. Ftp тут не очень вяжется :-)

По вашей задаче — напишите bash скриптик или обертки для функций на языке вашего проекта, чтобы операции с такими файлами были «прозрачными».