What is a good solution for distributing image files, daily, across multiple platforms?
Sorry for the crappy title.
I have a repository of product images (approximately 55,000 and growing by about 1000 a year) that changes daily (up to 100 images added, modified and/or deleted every day).
I need three people to have access to making the above changes (so they can read/write to the directories). They will all be using windows vista PC's.
I also need to be able to host the images so that vendors can stay up to date with the changes on a daily basis. There are about 100 vendors.
The system I am thinking about implementing now would involve using Subversion.
In the trunk I would have the images (broken down into multiple directories and sub directories). The three people would have working copies on their local machines so they can make the necessary changes and we w开发者_如何学Pythonouldn't have to worry about conflicts. Plus everybody could easily stay up to date with the repository (not to mention the obvious benefits of versioning and backup).
I would have a public, read only, url to the trunk so that the vendors can only checkout changes. This is good because I could offer them instructions on how to checkout the repository and setup a cron to update the repo daily, thus, always being up to date.
All of the vendors have enough technical expertise to setup a cron job and svn repo on their servers.
This all feels a little hacky (I consider anytime I try to use something that it wasn't designed for a hack).
My questions are, does anybody see any drawbacks to this solution? Are there any other solutions that may be better for what I am trying to do?
I considered using dropbox to sync across all of these servers but I don't want the vendors to be able to make any changes.
My goals are:
- Make maintenance easier for my designers.
- A one time setup for vendors and they will always be up to date with our images.
- Having a decent backup/restore and rollback system in place just in case of a crisis.
You solution seems as good as any. All you have to do is a small client script that would retrieve the images from your server to the client.
The only thing I don't really like is the use of subversion to hold images. It works, but every change will not be stored as a delta, but rather as a full new file. This might not be a concern for you.
Also, the use of rsync
will allow you to easily transfer the only changed files, saving bandwidth. Also, you might need to consider using SSH for the transfers.
One more thing, you might want to schedule the sync scripts to different hours of the day across your clients to even the load, and make it appear faster for them.
Your solution makes sense overall, though I share the concern about the size of a repository with that many images. At some level a content management system specifically intended for images might make more sense (though I don't know of one to recommend).
One thing I would suggest changing though is unless the vendors actually need to be able to edit/commit files, you might want to consider setting up a scheduled job to export to a file system (which is then made available via FTP/HTTP/etc). Having the vendors perform a checkout means they're going to have all the overhead of a working copy instead. (Then you end up dealing with the question of "What are all these .svn directories and what are these other files?")
精彩评论