go-bindata-assetfs – github.com/elazarl/go-bindata-assetfs Index | Files | Directories

package assetfs

import "github.com/elazarl/go-bindata-assetfs"

assetfs allows packages to serve static content embedded with the go-bindata tool with the standard net/http package.

See https://github.com/go-bindata/go-bindata for more information about embedding binary data with go-bindata.

Usage example, after running

$ go-bindata data/...

use:

http.Handle("/",
   http.FileServer(
   &assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, Prefix: "data"}))

Index

Types

type AssetDirectory

type AssetDirectory struct {
	AssetFile
	ChildrenRead int
	Children     []os.FileInfo
}

AssetDirectory implements http.File interface for a directory

func NewAssetDirectory

func NewAssetDirectory(name string, children []string, fs *AssetFS) *AssetDirectory

func (*AssetDirectory) Readdir

func (f *AssetDirectory) Readdir(count int) ([]os.FileInfo, error)

func (*AssetDirectory) Stat

func (f *AssetDirectory) Stat() (os.FileInfo, error)

type AssetFS

type AssetFS struct {
	// Asset should return content of file in path if exists
	Asset func(path string) ([]byte, error)
	// AssetDir should return list of files in the path
	AssetDir func(path string) ([]string, error)
	// AssetInfo should return the info of file in path if exists
	AssetInfo func(path string) (os.FileInfo, error)
	// Prefix would be prepended to http requests
	Prefix string
	// Fallback file that is served if no other is found
	Fallback string
}

AssetFS implements http.FileSystem, allowing embedded files to be served from net/http package.

func (*AssetFS) Open

func (fs *AssetFS) Open(name string) (http.File, error)

type AssetFile

type AssetFile struct {
	*bytes.Reader
	io.Closer
	FakeFile
}

AssetFile implements http.File interface for a no-directory file with content

func NewAssetFile

func NewAssetFile(name string, content []byte, timestamp time.Time) *AssetFile

func (*AssetFile) Readdir

func (f *AssetFile) Readdir(count int) ([]os.FileInfo, error)

func (*AssetFile) Size

func (f *AssetFile) Size() int64

func (*AssetFile) Stat

func (f *AssetFile) Stat() (os.FileInfo, error)

type FakeFile

type FakeFile struct {
	// Path is the path of this file
	Path string
	// Dir marks of the path is a directory
	Dir bool
	// Len is the length of the fake file, zero if it is a directory
	Len int64
	// Timestamp is the ModTime of this file
	Timestamp time.Time
}

FakeFile implements os.FileInfo interface for a given path and size

func (*FakeFile) IsDir

func (f *FakeFile) IsDir() bool

func (*FakeFile) ModTime

func (f *FakeFile) ModTime() time.Time

func (*FakeFile) Mode

func (f *FakeFile) Mode() os.FileMode

func (*FakeFile) Name

func (f *FakeFile) Name() string

func (*FakeFile) Size

func (f *FakeFile) Size() int64

func (*FakeFile) Sys

func (f *FakeFile) Sys() interface{}

Source Files

assetfs.go doc.go

Directories

PathSynopsis
go-bindata-assetfs
Version
v1.0.1 (latest)
Published
May 9, 2020
Platform
linux/amd64
Imports
10 packages
Last checked
2 months ago

Tools for package owners.