To implement support for a custom AWS STS login procedure, I extended aus_driver_amazon_s3.
This required three things:
- Custom driver class extending
AmazonS3Driver with an own DRIVER_TYPE that implements hookInitializeClient to do load credentials via STS
- Custom
Extractor extending this extension's Extractor class because canProcess() and getDriverRestrictions() are hard-coded to check for AmazonS3Driver::DRIVER_TYPE
- Custom
FileIndexRepository with a copy of recordUpdatedOrCreated that is identical to this extension's recordUpdatedOrCreated except that my driver type is checked
ext_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?
To implement support for a custom AWS STS login procedure, I extended aus_driver_amazon_s3.
This required three things:
AmazonS3Driverwith an ownDRIVER_TYPEthat implementshookInitializeClientto do load credentials via STSExtractorextending this extension'sExtractorclass becausecanProcess()andgetDriverRestrictions()are hard-coded to check forAmazonS3Driver::DRIVER_TYPEFileIndexRepositorywith a copy ofrecordUpdatedOrCreatedthat is identical to this extension'srecordUpdatedOrCreatedexcept that my driver type is checkedext_localconf.phpto 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?