Store

blobstore.Store
See theStore companion object
trait Store[F[_], +BlobType]

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Concise view

Value members

Abstract methods

def copy[A, B](src: Url[A], dst: Url[B]): F[Unit]

Copies bytes from srcPath to dstPath. Stores should optimize to use native copy functions to avoid data transfer.

Copies bytes from srcPath to dstPath. Stores should optimize to use native copy functions to avoid data transfer.

Attributes

dst

path

src

path

Returns:

F[Unit]

def get[A](url: Url[A], chunkSize: Int): Stream[F, Byte]

Attributes

chunkSize

bytes to read in each chunk.

url

to get

Returns:

stream of bytes

def list[A](url: Url[A], recursive: Boolean): Stream[F, Url[BlobType]]

Attributes

recursive

when true returned list would contain files at given path and all sub-folders but no folders, otherwise – return files and folder at given path.

url

to list

Returns:

stream of Paths. Implementing stores must guarantee that returned Paths have correct values for size, isDir and lastModified.

Example:

Given Path pointing at folder: folder/a folder/b folder/c folder/sub-folder/d folder/sub-folder/sub-sub-folder/e list(folder, recursive = true) -> [a, b, c, d, e] list(folder, recursive = false) -> [a, b, c, sub-folder]

def move[A, B](src: Url[A], dst: Url[B]): F[Unit]

Moves bytes from srcPath to dstPath. Stores should optimize to use native move functions to avoid data transfer.

Moves bytes from srcPath to dstPath. Stores should optimize to use native move functions to avoid data transfer.

Attributes

dst

path

src

path

Returns:

F[Unit]

def put[A](url: Url[A], overwrite: Boolean, size: Option[Long]): (F, Byte) => Unit

Attributes

overwrite

when true putting to path with pre-existing file would overwrite the content, otherwise – fail with error.

url

to put

Returns:

sink of bytes

def putRotate[A](computeUrl: F[Url[A]], limit: Long): (F, Byte) => Unit

Writes all data to a sequence of blobs/files, each limited in size to limit.

Writes all data to a sequence of blobs/files, each limited in size to limit.

The computeUrl operation is used to compute the path of the first file and every subsequent file. Typically, the next file should be determined by analyzing the current state of the filesystem -- e.g., by looking at all files in a directory and generating a unique name.

Attributes

computeUrl

operation to compute the url of the first file and all subsequent files.

limit

maximum size in bytes for each file.

Returns:

sink of bytes

Note:

Put of all files uses overwrite semantic, i.e. if path returned by computeUrl already exists content will be overwritten. If that doesn't suit your use case use computeUrl to guard against overwriting existing files.

def remove[A](url: Url[A], recursive: Boolean): F[Unit]

Remove bytes for given path. Call should succeed even if there is nothing stored at that path.

Remove bytes for given path. Call should succeed even if there is nothing stored at that path.

Attributes

url

to remove

Returns:

F[Unit]

def stat[A](url: Url[A]): Stream[F, Url[BlobType]]

Concrete methods

def get[A](url: Url[A]): Stream[F, Byte]