Projects:Store Attachments In Amazon S3/Specifications
The aim of this project is to allow the usage of Amazon S3 storage system for Openbravo Attachments.
Amazon S3 provides an object storage platform and it has been selected as the most valuable option from several candidates. The result of the research for the different alternatives can be found here.
As the result of this project, a new module will be developed containing the infrastructure and configuration required to directly store the attachments into the Amazon S3 platform.
Amazon S3 stores data as objects within resources called buckets. You can store as many objects as you want within a bucket, and write, read, and delete objects in your bucket. Objects can be up to 5 terabytes in size.
With the new module, the attachments will be stored inside one of this buckets instead of keeping them in the Openbravo server itself. It should be possible to upload, delete and update the attachments as usual.
To achieve this, a new attachment method will be created.
This module will include the libraries of the Amazon SDK required to communicate with Amazon S3:
- AWS Java SDK Core 1.11.280: core module which holds the classes that are used by the individual service clients to interact with Amazon Web Services.
- AWS Java SDK KMS 1.11.280: the AWS Java SDK for AWS KMS module holds the client classes that are used for communicating with AWS Key Management Service.
- AWS Java SDK S3 1.11.280: the AWS Java SDK for Amazon S3 module holds the client classes that are used for communicating with Amazon Simple Storage Service.
- ION Java 1.0.2: a Java implementation of the Amazon Ion data notation.
- JMESPath Java 1.11.280: a Java implementation of JMESPath, a query language for JSON.
- Joda-Time 2.8.1: provides a quality replacement for the Java date and time classes.
These libraries have some dependencies with another libraries already present in Openbravo core which must be updated in order to meet that dependencies:
For this reason, the module to be developed will be available starting from Openbravo PR18Q2 version.