Open cweiske opened 1 year ago
With #133 the event dispatcher (PSR-14 events) was introduced: https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Events/EventDispatcher/Index.html
Does that help you? If you wish more events
just make a suggestion. Thanks!
Events and hooks only help if you want to override settings of all S3 driver instances. The concept breaks when I have a "normal" S3 driver instance connecting to a MinIO service and a second driver that needs credentials via STS. (I know that I could differentiate by driver UID or label, but that's not very stable)
For that case I needed to provide my own driver extension so that I can select the driver type, and let my STS driver work a bit differently.
So in the end my driver extends the S3 driver here and has its own DRIVER_TYPE
, and the hard-coded checks for this driver type in Extractor
and FileIndexRepository
make it hard.
To implement support for a custom AWS STS login procedure, I extended aus_driver_amazon_s3.
This required three things:
AmazonS3Driver
with an ownDRIVER_TYPE
that implementshookInitializeClient
to do load credentials via STSExtractor
extending this extension'sExtractor
class becausecanProcess()
andgetDriverRestrictions()
are hard-coded to check forAmazonS3Driver::DRIVER_TYPE
FileIndexRepository
with a copy ofrecordUpdatedOrCreated
that is identical to this extension'srecordUpdatedOrCreated
except that my driver type is checkedext_localconf.php
to register my driver, extractor and signal handlers.It would be nice if I could get rid of step 2 and 3.
What would be the best way to do this? Move the driver type checks into separate methods so that overriding the classes can be made with minimal effort? A registry for driver types that aus_driver_amazon's FileIndexRepository and Extractor support?