Skip to content

Conversation

llemeurfr
Copy link
Contributor

This evolution enables the selection of a storage folder or S3 bucket at the time a publication is encrypted. Fixes #264.

@llemeurfr llemeurfr merged commit 96737c1 into develop Jan 6, 2022
@llemeurfr
Copy link
Contributor Author

We'll request heavy testing from the develop branch, before merging into master.

@llemeurfr llemeurfr deleted the choose-encrypt-location branch January 6, 2022 18:21
llemeurfr added a commit that referenced this pull request Feb 2, 2022
* 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant