Back to / sdks / go / pkg / beam / io / filesystem

Package filesystem

Latest Go to latest

The latest major version is .

Published: Jul 22, 2020 | License: Apache-2.0 | Module:


Package filesystem contains an extensible file system abstraction. It allows various kinds of storage systems to be used uniformly, notably through textio.


func Read

func Read(ctx context.Context, fs Interface, filename string) ([]byte, error)

Read fully reads the given file from the file system.

func Register

func Register(scheme string, fs func(context.Context) Interface)

Register registers a file system backend under the given scheme. For example, "hdfs" would be registered a HFDS file system and HDFS paths used transparently.

func ValidateScheme

func ValidateScheme(path string)

ValidateScheme panics if the given path's scheme does not have a corresponding file system registered.

func Write

func Write(ctx context.Context, fs Interface, filename string, data []byte) error

Write writes the given content to the file system.

type Interface

type Interface interface {

	// List expands a patten to a list of filenames.
	List(ctx context.Context, glob string) ([]string, error)

	// OpenRead opens a file for reading.
	OpenRead(ctx context.Context, filename string) (io.ReadCloser, error)
	// OpenRead opens a file for writing. If the file already exist, it will be
	// overwritten.
	OpenWrite(ctx context.Context, filename string) (io.WriteCloser, error)

Interface is a filesystem abstraction that allows beam io sources and sinks to use various underlying storage systems transparently.

func New

func New(ctx context.Context, path string) (Interface, error)

New returns a new Interface for the given file path's scheme.

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier