Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Choose the storage location of encrypted publications (#267) This evolution has been requested by several implementers, notably the Internet Archive. With the current encryption workflow, lcpencrypt is creating a temporary encrypted file in the file system; the file path is notified to the License Server, which copies the content of the file either to the final file system storage or S3 bucket. All encrypted files are stored in the same folder or bucket, which may be quite large. This solution has three issues: there must be a shared folder between lcpencrypt and lcpserver, there is a file copy (if the storage is a file system) that has no real interest, and the storage is hugely monolithic. The license server does not need to manage file storage: its purpose is serving licenses, and for that it must only know the URL of the encrypted publication. Therefore, the evolution consists in adding storage control to lcpencrypt, and the possibility to notify the lcpserver of the encryption of a new publication with its storage URL as a parameter. An implementer can therefore control storage folders or S3 buckets as he needs, e.g. use one folder/bucket per month, one folder/bucket per type of publication, even one folder/bucket per publication if this is his choice. The evolution is totally backward compatible, i.e. implementers are able to keep their current architecture and configuration file. They are also able to move to the new architecture without the requirement to change the structure or content of their active database. Implementers willing to move to the new architecture will just have to modify their config file, restart their lcpserver and use lcpencrypt with new parameters. Note: this is also the opportunity to clean redundant encryption code (duplicated between lcpencrypt and the test frontend server). * Fetch the input file from a remote http server Restore the capability for the lcpencrypt utility to fetch the input file from a remote http server.
- Loading branch information