Storage.Variant (PhoenixContribStorage v0.1.0)

View Source

Handles image transformations and variants.

Variants allow you to create different versions of images on-demand, similar to Rails ActiveStorage variants.

Examples

# Create a thumbnail variant
thumbnail = Storage.Variant.processed(blob, resize: "100x100")

# Create multiple variants
variants = %{
  thumb: [resize: "100x100"],
  medium: [resize: "300x300"], 
  large: [resize: "800x600"]
}

processed_variants = Storage.Variant.process_variants(blob, variants)

Summary

Functions

Checks if a variant exists in storage.

Creates a new variant with the given transformations.

Processes multiple variants of a blob.

Processes a variant and returns the processed blob.

Gets the URL for a variant, processing it if necessary.

Generates a variant key for caching.

Types

t()

@type t() :: %Storage.Variant{
  blob: Storage.Blob.t(),
  processed: boolean(),
  transformations: keyword()
}

Functions

exists?(variant)

Checks if a variant exists in storage.

new(blob, transformations)

Creates a new variant with the given transformations.

process_variants(blob, variants)

Processes multiple variants of a blob.

processed(blob, transformations)

Processes a variant and returns the processed blob.

url(variant, opts \\ [])

Gets the URL for a variant, processing it if necessary.

variant_key(variant)

Generates a variant key for caching.

variant_key(blob, transformations)