package
0.0.0-20250222174224-cad8d4123c40
Repository: https://github.com/perkeep/perkeep.git
Documentation: pkg.go.dev
# Packages
Package archiver zips lots of little blobs into bigger zip files and stores them somewhere.
Package azure registers the "azure" blobserver storage type, storing
blobs in a Microsoft Azure Blob Storage container.
Package blobpacked registers the "blobpacked" blobserver storage type,
storing blobs initially as one physical blob per logical blob, but then
rearranging little physical blobs into large contiguous blobs organized by
how they'll likely be accessed.
Package cond registers the "cond" conditional blobserver storage type
to select routing of get/put operations on blobs to other storage
targets as a function of their content.
Package dir implements the blobserver Storage interface for a directory, detecting whether the directory is file-per-blob (localdisk) or diskpacked.
Package diskpacked registers the "diskpacked" blobserver storage type,
storing blobs packed together into monolithic data files
with an index listing the sizes and offsets of the little blobs
within the large files.
Package encrypt registers the "encrypt" blobserver storage type which stores all blobs and metadata with age encryption into other wrapped storage targets (e.g.
Package files implements the blobserver interface by storing each blob
in its own file in nested directories.
Package gethandler implements the HTTP handler for fetching blobs.
No description provided by the author
Package handlers implements the HTTP interface to the Perkeep blob server.
Package local implements functionality common to both the "localdisk" and
"diskpacked" storage mechanisms.
Package localdisk registers the "filesystem" blobserver storage type,
storing blobs in a forest of sharded directories at the specified root.
Package memory registers the "memory" blobserver storage type, storing blobs in an in-memory map.
Package mongo registers the "mongo" blobserver storage type, storing
blobs using MongoDB.
Package namespace implements the "namespace" blobserver storage type.
Package overlay registers the "overlay" blobserver storage type
that presents storage that is the result of overlaying a
storage ("upper") on top of another storage ("lower").
Package protocol contains types for Perkeep protocol types.
Package proxycache registers the "proxycache" blobserver storage type,
which uses a provided blobserver as a cache for a second origin
blobserver.
Package remote registers the "remote" blobserver storage type, storing
and fetching blobs from a remote Perkeep server over HTTPS.
Package replica registers the "replica" blobserver storage type,
providing synchronous replication to one more backends.
Package s3 registers the "s3" blobserver storage type, storing
blobs in an Amazon Web Services' S3 storage bucket.
Package sftp registers the "sftp" blobserver storage type, storing
blobs one-per-file in a forest of sharded directories to a remote SFTP
server over an SSH connection.
Package shard registers the "shard" blobserver storage type,
predictably spraying out blobs out over the provided backends
based on their blobref.
Package stats contains an in-memory StatReceiver that only stores sizes of received blobs but not their contents.
Package storagetest tests blobserver.Storage implementations.
Package union registers the "union" read-only blobserver storage type to read from the given subsets, serving the first responding.
# Functions
CreateHandler instantiates an http Handler of type 'typ' from the provided JSON configuration, and finding peer handlers and configuration from the environment in 'loader'.
No description provided by the author
EnumerateAll runs fn for each blob in src.
EnumerateAllFrom is like EnumerateAll, but takes an after parameter.
GetHub return a BlobHub for the given storage implementation.
ListMissingDestinationBlobs reads from 'srcch' and 'dstch' (sorted enumerations of blobs from two blob servers) and sends to 'destMissing' any blobs which appear on the source but not at the destination.
MergedEnumerate implements the BlobEnumerator interface by merge-joining 0 or more sources.
MergedEnumerateStorage implements the BlobEnumerator interface by merge-joining 0 or more sources.
NewMultiBlobStreamer concatenates multiple BlobStreamers into one.
Receive wraps calling a BlobReceiver's ReceiveBlob method, additionally providing verification of the src digest, and also notifying the blob hub on success.
No description provided by the author
ReceiveString uploads the blob given by the string s to dst and returns its blobref and size.
RefTypes returns a list of blobref types appearing on the provided enumerator.
RegisterHandlerConstructor registers an http Handler constructor function for a given handler type.
No description provided by the author
StatBlob calls bs.StatBlobs to stat a single blob.
StatBlobs stats multiple blobs and returns a map of the found refs to their sizes.
StatBlobsParallelHelper is for use by blobserver implementations that want to issue stats in parallel.
WaitForBlob waits until deadline for blobs to arrive.
# Constants
MaxBlobSize is the size of a single blob in Perkeep.
# Variables
No description provided by the author
No description provided by the author
ErrNotImplemented should be returned in methods where the function is not implemented.
ErrReadonly is the error value returned by read-only blobservers.
# Structs
BlobAndToken is the value used by the BlobStreamer interface, containing both a Blob and a continuation token.
No description provided by the author
NoImplStorage is an implementation of Storage that returns a not implemented error for all operations.
# Interfaces
No description provided by the author
No description provided by the author
No description provided by the author
BlobReceiver is the interface for receiving blobs.
No description provided by the author
BlobStatter is the interface for checking the size and existence of blobs.
No description provided by the author
Cache is the minimal interface expected of a blob cache.
No description provided by the author
No description provided by the author
No description provided by the author
Generationer is an optional interface and an optimization and paranoia
facility for clients which can be implemented by Storage
implementations.
HandlerIniter is an optional interface which can be implemented by Storage or http.Handlers (from StorageConstructor or HandlerConstructor) to be called once all the handlers have been created.
No description provided by the author
MaxEnumerateConfig is an optional interface implemented by Storage interfaces to advertise their max value for how many items can be enumerated at once.
ShutdownStorage is an optional interface for storage implementations which can be asked to shut down cleanly.
No description provided by the author
Storage is the interface that must be implemented by a blobserver storage type.
No description provided by the author
StorageHandler is a storage implementation that also exports an HTTP status page.
WholeRefFetcher is an optional fast-path interface exposed by the 'blobpacked' blob storage implementation, which packs pieces of files together and can efficiently serve them contigously.
# Type aliases
A GenerationNotSupportedError explains why a Storage value implemented the Generationer interface but failed due to a wrapped Storage value not implementing the interface.
A HandlerConstructor returns an http.Handler from a Loader environment and a configuration.
A StorageConstructor returns a Storage implementation from a Loader environment and a configuration.