filecache

package module
v0.0.0-...-cb1a4b3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2024 License: AGPL-3.0 Imports: 5 Imported by: 2

README

FileCache - Efficient Go File Caching

FileCache is a Go module that provides a simple file caching mechanism. It allows you to efficiently manage and retrieve files, with the option to cache them in memory or use a streaming approach for large files.

Features

  • In-memory caching of small files.
  • Streaming for large files to avoid excessive memory usage.
  • Efficient file updates and deletions.

Installation

go get -u github.com/NIR3X/filecache

Usage

package main

import (
	"fmt"
	"github.com/NIR3X/filecache"
)

func main() {
	// Create a new FileCache instance with a specified maximum cache size
	f := filecache.NewFileCache(2 * 1024 * 1024)

	// Update the cache with a file
	err := f.Update("/path/to/your/file.txt")
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	// Get a reader for the file from the cache
	reader, writer, err := f.Get("/path/to/your/file.txt")
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	// Use the reader to read the file content

	// Remember to close the writer if it's not nil

	// ...

	// Delete a file from the cache
	f.Delete("/path/to/your/file.txt")
}

License

GNU AGPLv3 Image

This program is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Documentation

Index

Constants

View Source
const (
	NotFound = iota
	Cached
	Piped
)

Variables

This section is empty.

Functions

This section is empty.

Types

type FileCache

type FileCache struct {
	// contains filtered or unexported fields
}

func NewFileCache

func NewFileCache(maxCacheSize int64) *FileCache

func (*FileCache) Delete

func (f *FileCache) Delete(path string)

func (*FileCache) Get

func (f *FileCache) Get(path string) (io.Reader, *io.PipeWriter, error)

func (*FileCache) GetCached

func (f *FileCache) GetCached(path string) (io.Reader, int)

func (*FileCache) Identify

func (f *FileCache) Identify(path string) int

func (*FileCache) Update

func (f *FileCache) Update(path string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL