Module: Shrine::Plugins::KitheStorageLocation
- Defined in:
- lib/shrine/plugins/kithe_storage_location.rb
Overview
Set custom storage locations/paths for both the original file which is the main file in the shrine attachment at Asset#file, and any shrine derivatives.
Shrine’s default is to just put both of these at top-level ‘[randomID].suffix`. We instead:
## Original file
Stored at ‘asset/#asset_uuid_id/#unique_file_id.suffix` – regardless of asset sub-class, since they all have unique ids, just all under asset/. (In retrospect, maybe shoudl have left `asset/` off, and let consumer specify a prefix when configuring storage).
If no Asset pk is available (direct upload or unsaved Asset), will be stored just under “asset/#unique_file_id.#suffix”
We are choosing to store under Asset UUID PK instead of friendlier_id, friendlier_id is good for public URLs and UI, but actual PK is more reliable/immutable.
## Derivatives
Stored at ‘#asset_uuid_id/derivative_key/#unique_file_id.suffix`.
If asset uuid pk is not available, will raise a TypeError and refuse to store derivative. (This may have to be thought through more.)
If you want an additional prefix, supply it hwen configuring kithe_derivatives storage.
Defined Under Namespace
Modules: InstanceMethods