@chrisidefix Thanks for all your responses. Yep, I realise that acd_cli isn't intended a drop box replacment, and what the 'sync' command does (as I understand it, the sync command is gives you a local listing of all files (and some other information about each file) for the user to do with as they like. It provides a basis for some of the other commands to work from, but in of itself, doesn't do anything to to files on ACD. I think I've all that correct?)
I'd like to use acd_cli to primarily upload photos to ACD. My workflow involves organising my photos by event, and sometimes, I put one in the wrong place, or sub divide an event, which inevitably involves moving photos between folders (and so, that's a Write to one folder and a Delete on another folder.)
You're definitely right about the need to be very careful when allowing delete functionality. I'd suggest one of both of the following safeguards:
With regard to file deletions on ACD: I hadn't though of that, and I can see how handling those would make the programming of it a lot more complicated. So, I'd suggest that you allow the user to declare what's to be considered the "master" file system - the local one or ACD; deletions that take place on the system which is not the master are not tracked or propagated to the other system. Or, to keep it even simpler, just don't track deletions on ACD - it is afterall, as you say, a backup rather than a syncing application.
Just my two cents ...
wget
to download some shared files. Any idea how it might be possible to do that (or any other way over the commandline)? Is this something that you think could possibly be integrated into acd_cli
? (I know it's not really the scope of this project, but it would be pretty nice to be able to do it.)
?dl=1
or something similar to the link. Dropbox for example then allows you to download the file with wget
, but why make things easy for the user, right?
acd_cli
does NOT keep track of file changes (as other cloud sync services do) for you. Therefore, you have to decide yourself if you want to force overwriting all local changes. It would be pretty poor design to automatically overwrite local files by default in my opinion. What if you locally changed your file? Any application will generally ask you if you really want to overwrite that file (or it will at least rename the downloaded file). I would not recommend syncing your git repository with a cloud service - maybe for backup purposes, but better use a service such as github or bitbucket (if you want private repositories).