storage

package
v0.396.6 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 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) GenerateFileResponse added in v0.395.9

func (s *DbStore) GenerateFileResponse(fi *FileInfo) (FileResponse, error)

func (*DbStore) GetFileInfo

func (s *DbStore) GetFileInfo(key string) (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"`
}

FileInfo contains important data for the File type as stored in the database

func (*FileInfo) ToDbRecord added in v0.395.9

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

func (*FileInfo) ToJSON

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

type FileResponse added in v0.394.0

type FileResponse struct {
	Key         string `json:"key"`
	Filename    string `json:"filename"`
	ContentType string `json:"contentType"`
	Size        int    `json:"size"`
	URL         string `json:"url"`
}

FileResponse is what is returned from our APIs

type Storer

type Storer interface {
	// Store will save the given file and return a FileInfo 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 as stored in the database.
	GetFileInfo(key string) (FileInfo, error)

	// GenerateFileResponse will take the given file info and generate a response to be returned from an API.
	//
	// The use of this function is to generate any signed URLs for file downloads.
	GenerateFileResponse(fi *FileInfo) (FileResponse, 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