class Bakelite::StoredItem

Overview

Chunked, compressed, and stream-backed asset (Store mode). Employs Bakelite::FileIO to stream chunks on demand in O(chunk_size) RAM.

Defined in:

bakelite/item.cr

Constructors

Instance Method Summary

Instance methods inherited from class Bakelite::Item

compressed_size : Int64 compressed_size, compute_crc32 : UInt32 compute_crc32, compute_sha256 : String compute_sha256, content : String content, content_address : String content_address, crc32 : UInt32 crc32, crc32_hex : String crc32_hex, etag : String etag, extract(target_path : Path | String, overwrite : Bool = true) : Bool extract, mime_type : String mime_type, open : IO
open(&block : IO -> T) : T forall T
open
, path : String path, sha256 : String sha256, sha256_bytes : Bytes sha256_bytes, size : Int64 size, storage_mode : StorageMode storage_mode, strong_etag : String strong_etag, to_s(io : IO) : Nil
to_s : String
to_s
, to_slice : Bytes to_slice, verify_crc32? : Bool verify_crc32?, verify_sha256?(expected_digest : String) : Bool verify_sha256?, volume_name : String volume_name

Constructor methods inherited from class Bakelite::Item

new(path : String, volume_name : Symbol | String, size : Int64, compressed_size : Int64, mime_type : String, crc32 : UInt32, storage_mode : StorageMode, sha256 : String | Nil = nil) new

Class methods inherited from class Bakelite::Item

normalize_sha256(digest : String) : String normalize_sha256

Constructor Detail

def self.new(path : String, volume_name : Symbol | String, size : Int64, compressed_size : Int64, chunks : Array(Chunk), compression : CompressionType = CompressionType::None, mime_type : String | Nil = nil, crc32 : UInt32 = 0_u32, underlying_io : IO | Nil = nil, sha256 : String | Nil = nil) #

[View source]

Instance Method Detail

def chunks : Array(Chunk) #

[View source]
def compression : CompressionType #

[View source]
def open : IO #
Description copied from class Bakelite::Item

Opens a readable stream for this asset.


[View source]
def to_s(io : IO) : Nil #
Description copied from class Bakelite::Item

Streams the content into the given output IO.


[View source]
def to_slice : Bytes #
Description copied from class Bakelite::Item

Returns the full contents as a byte slice.


[View source]
def underlying_io : IO | Nil #

[View source]