storage

package
v0.389.9 Latest Latest
Warning

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

Go to latest
Published: Aug 7, 2024 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DbStore

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

func NewDbStore

func NewDbStore(ctx context.Context, db db.Database) (*DbStore, error)

NewDbStore will return a Storage service for files that is db based

func (*DbStore) GetFileInfo

func (s *DbStore) GetFileInfo(key string) (FileInfo, error)

func (*DbStore) HydrateFileInfo

func (s *DbStore) HydrateFileInfo(fi *FileInfo) (FileInfo, error)

func (*DbStore) Store

func (s *DbStore) Store(url string) (FileInfo, error)

type FileInfo

type FileInfo struct {
	Key         string  `json:"key"`
	Filename    string  `json:"filename"`
	ContentType string  `json:"contentType"`
	Size        int     `json:"size"`
	URL         *string `json:"url,omitempty"`
	Public      bool    `json:"public"`
}

func (*FileInfo) ToJSON

func (fi *FileInfo) ToJSON() (string, error)

type Storer

type Storer interface {
	// Store will save the given file and return a FileData struct for it
	//
	// The input should be a well formed dataURL https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs
	// The name of the file can also be passed as a parameter of the mediaType segment; e.g.
	// data:application/pdf;name=MyUploadedFile.pdf;base64,xxxxxx[...]
	Store(dataURL string) (FileInfo, error)

	// GetFileInfo will return the file information for the given unique file key.
	//
	// The File info returned can contain a URL where the file can be downloaded from, if applicable; i.e. for database
	// storage, at the moment files cannot be retrieved via URLs.
	GetFileInfo(key string) (FileInfo, error)

	// HydrateFileInfo will take the given file info and hydrate it with the most up to date information.
	//
	// The use of this function is to generate any signed URLs for file downloads.
	HydrateFileInfo(fi *FileInfo) (FileInfo, error)
}

Storer represents the interface for a file storing service that is used by the Keel runtime

Jump to

Keyboard shortcuts

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