The main idea is to allow synced files to span multiple locations to address issues where you may have multiple drives with limited space. But I want to go beyond just monitoring free space at a location, I want to be able to set a maximum amount of space to be used at a location. That way I have the option to not use more than 1 TB on a 2 TB drive or something like that.
Another goal is that I want this to be flexible. If at one time I had the data files span multiple drives, I'd like the option to re-combine them a single drive. So saved file paths should be generic. This might create lookup problems. The basic (if slightly slow way), is to just check all locations for a specific file. This is fine as long as file names are unique within the whole system. Since the filenames include the ID of the video in the DB, we should be fine on this front. If lookups prove to be a choke point, we could add another field to the DB that includes a location prefix. In code we should just use the prefix as a hint of where to look first, but not assume that that's the only location the file could be at. This way we have some flexibility in merging files from different locations.
Tasks
(prioritized by given order, then switch based on space)
The main idea is to allow synced files to span multiple locations to address issues where you may have multiple drives with limited space. But I want to go beyond just monitoring free space at a location, I want to be able to set a maximum amount of space to be used at a location. That way I have the option to not use more than 1 TB on a 2 TB drive or something like that.
Another goal is that I want this to be flexible. If at one time I had the data files span multiple drives, I'd like the option to re-combine them a single drive. So saved file paths should be generic. This might create lookup problems. The basic (if slightly slow way), is to just check all locations for a specific file. This is fine as long as file names are unique within the whole system. Since the filenames include the ID of the video in the DB, we should be fine on this front. If lookups prove to be a choke point, we could add another field to the DB that includes a location prefix. In code we should just use the prefix as a hint of where to look first, but not assume that that's the only location the file could be at. This way we have some flexibility in merging files from different locations.
Tasks
(prioritized by given order, then switch based on space)