-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide a AWS S3 backend for article storage #1295
Comments
Got started on a S3 backend. The first finding is that localstack looks usable. The second finding is that Amazon::S3::Thin has no way to specify the endpoint. The can be worked with some Sub::Override magic. The alternatives to using that module is to use modules that require Moose. |
Found an incorrect error message in Kernel/System/Ticket,pm. This can be handled in a separate issue. |
Also nice to have: Article backend using OpenStack Swift |
The article backend has the feature the the plain text and the attachments of articles are grouped by year, month, and day. This is a nice setup and should be carried over to the S3 backend. This is for consistency than for technical requirements. |
…_service Issue RotherOSS/otobo#1295: add a compose snippet for starting localstack
The prefix needs the trailing delimiter
|
Additional options would be nice to have in the console command Admin::Article::StorageSwitch:
Other inconsistencies might be lurking too when switching storage. Take an attachment that is stored in the source without content disposition. During the switching ArticleAttachment() is called and a default disposition is assigned to the article. This disposition is then stored in the target. All is well as long as the rules for the defaults don't change. If they do change we might get a discrepancy. |
Tentatively implement missing methods
Latest run of the test suite still showed the same spurious failures:
Might be worthwhile to investigate a bit more. See also #1067. |
TODO: It would be nice if Kernel/System/Ticket/Article/Backend/MIMEBase/ArticleStorageS3.pm would not use internal attributes from the Kernel::System::Storage::S3 object. This includes the attribute S3Object. This might means that Kernel::System::Storage::S3 might need a couple of additional methods.
|
Some new methods have been added to Kernel::System::Storage::S3. These should be covered in scripts/test/Storage/S3.t. |
TODO:
|
The test suite is now back to the usual. Merging now.
|
This still allows parallel processes of the HEAD requests. All interactions with S3 are now wrapped in Kernel::System::Storage::S3. Metadataprefix is now also set up in Kernel/Config.pm
at least kind of, currently only works with '/'
There is still a test failure that needs to be investigated: SysConfig/GlobalEffectiveValueGet.t |
S3 article backend is working. New findings get their own issue. Closing this issue. |
Currently articles, including attachments, can be stored in the file system and in the database. Allowing storage in S3 would be nice to have. This would also be a good option for running OTOBO in Kubernetes. See also #193 and #1148.
For local development https://hub.docker.com/r/localstack/localstack can be used. There are several S3 modules on CPAN.
Amazon::S3::Thin looks like a sane option, https://metacpan.org/release/AKIYM/Amazon-S3-Thin-0.30/view/lib/Amazon/S3/Thin.pm.
The text was updated successfully, but these errors were encountered: