Page MenuHomePhabricator

Allow custom storage engines to be identified automatically
AbandonedPublic

Authored by epriestley on Jan 5 2015, 9:02 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Apr 21, 8:02 PM
Unknown Object (File)
Sat, Mar 30, 10:57 PM
Unknown Object (File)
Mar 5 2024, 11:19 AM
Unknown Object (File)
Feb 10 2024, 4:06 AM
Unknown Object (File)
Feb 3 2024, 1:47 AM
Unknown Object (File)
Jan 10 2024, 11:03 AM
Unknown Object (File)
Jan 10 2024, 11:03 AM
Unknown Object (File)
Jan 10 2024, 11:03 AM
Subscribers

Details

Reviewers
joshuaspence
Group Reviewers
Blessed Reviewers
Summary

Allow custom storage engines to be identified without subclassing PhabricatorFileStorageEngineSelector. This simplifies configuration for installs which want to extend PhabricatorFileStorageEngine.

Test Plan

Ran ./bin/files engines and saw all engines listed. Also uploaded a file via /file/upload/.

Diff Detail

Event Timeline

joshuaspence retitled this revision from to Allow custom storage engines to be identified.
joshuaspence updated this object.
joshuaspence edited the test plan for this revision. (Show Details)
joshuaspence added a reviewer: epriestley.
joshuaspence edited edge metadata.
joshuaspence retitled this revision from Allow custom storage engines to be identified to Allow custom storage engines to be identified automatically.Jan 15 2015, 11:35 AM
epriestley edited reviewers, added: joshuaspence; removed: epriestley.

Yeah, this is a solid step toward where I want to go with T5843. I'm just going to steal it since I want to be a bit more aggressive:

  • I'm going to remove the selector class entirely.
  • I'm going to let engines have a "priority" to encode the "store in MySQL as a last resort" rule.
  • I'm likely going to drop the funny stuff where MySQL gets higher priority except not really; we have (or should have) proper caching nowadays to mitigate any slowness of the storage engine.
  • I'm going to add a couple methods around max file size, etc., to get the storage.mysql-engine.max-size key pushed into the MySQL engine.

Then I'll write a meta-engine for chunking and add some more stuff around that, per T7149.