client

package
v0.0.0-...-057eb06 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2019 License: GPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultGateway = "http://localhost:8500"
	DefaultClient  = NewClient(DefaultGateway)
)

Functions

This section is empty.

Types

type Client

type Client struct {
	Gateway string
}

Client wraps interaction with a swarm HTTP gateway.

func NewClient

func NewClient(gateway string) *Client

func (*Client) Download

func (c *Client) Download(hash, path string) (*File, error)

Download downloads a file with the given path from the swarm manifest with the given hash (i.e. it gets bzz:/<hash>/<path>)

func (*Client) DownloadDirectory

func (c *Client) DownloadDirectory(hash, path, destDir string) error

DownloadDirectory downloads the files contained in a swarm manifest under the given path into a local directory (existing files will be overwritten)

func (*Client) DownloadFile

func (c *Client) DownloadFile(hash, path, dest string) error

DownloadFile downloads a single file into the destination directory if the manifest entry does not specify a file name - it will fallback to the hash of the file as a filename

func (*Client) DownloadManifest

func (c *Client) DownloadManifest(hash string) (*api.Manifest, bool, error)

DownloadManifest downloads a swarm manifest

func (*Client) DownloadRaw

func (c *Client) DownloadRaw(hash string) (io.ReadCloser, bool, error)

DownloadRaw downloads raw data from swarm and it returns a ReadCloser and a bool whether the content was encrypted

func (*Client) List

func (c *Client) List(hash, prefix string) (*api.ManifestList, error)

List list files in a swarm manifest which have the given prefix, grouping common prefixes using "/" as a delimiter.

For example, if the manifest represents the following directory structure:

file1.txt file2.txt dir1/file3.txt dir1/dir2/file4.txt

Then:

- a prefix of "" would return [dir1/, file1.txt, file2.txt] - a prefix of "file" would return [file1.txt, file2.txt] - a prefix of "dir1/" would return [dir1/dir2/, dir1/file3.txt]

where entries ending with "/" are common prefixes.

func (*Client) MultipartUpload

func (c *Client) MultipartUpload(hash string, uploader Uploader) (string, error)

MultipartUpload uses the given Uploader to upload files to swarm as a multipart form, returning the resulting manifest hash

func (*Client) TarUpload

func (c *Client) TarUpload(hash string, uploader Uploader, toEncrypt bool) (string, error)

TarUpload uses the given Uploader to upload files to swarm as a tar stream, returning the resulting manifest hash

func (*Client) Upload

func (c *Client) Upload(file *File, manifest string, toEncrypt bool) (string, error)

Upload uploads a file to swarm and either adds it to an existing manifest (if the manifest argument is non-empty) or creates a new manifest containing the file, returning the resulting manifest hash (the file will then be available at bzz:/<hash>/<path>)

func (*Client) UploadDirectory

func (c *Client) UploadDirectory(dir, defaultPath, manifest string, toEncrypt bool) (string, error)

UploadDirectory uploads a directory tree to swarm and either adds the files to an existing manifest (if the manifest argument is non-empty) or creates a new manifest, returning the resulting manifest hash (files from the directory will then be available at bzz:/<hash>/path/to/file), with the file specified in defaultPath being uploaded to the root of the manifest (i.e. bzz:/<hash>/)

func (*Client) UploadManifest

func (c *Client) UploadManifest(m *api.Manifest, toEncrypt bool) (string, error)

UploadManifest uploads the given manifest to swarm

func (*Client) UploadRaw

func (c *Client) UploadRaw(r io.Reader, size int64, toEncrypt bool) (string, error)

UploadRaw uploads raw data to swarm and returns the resulting hash. If toEncrypt is true it uploads encrypted data

type DirectoryUploader

type DirectoryUploader struct {
	Dir         string
	DefaultPath string
}

DirectoryUploader uploads all files in a directory, optionally uploading a file to the default path

func (*DirectoryUploader) Upload

func (d *DirectoryUploader) Upload(upload UploadFn) error

Upload performs the upload of the directory and default path

type File

type File struct {
	io.ReadCloser
	api.ManifestEntry
}

File represents a file in a swarm manifest and is used for uploading and downloading content to and from swarm

func Open

func Open(path string) (*File, error)

Open opens a local file which can then be passed to client.Upload to upload it to swarm

type FileUploader

type FileUploader struct {
	File *File
}

FileUploader uploads a single file

func (*FileUploader) Upload

func (f *FileUploader) Upload(upload UploadFn) error

Upload performs the upload of the file

type UploadFn

type UploadFn func(file *File) error

UploadFn is the type of function passed to an Uploader to perform the upload of a single file (for example, a directory uploader would call a provided UploadFn for each file in the directory tree)

type Uploader

type Uploader interface {
	Upload(UploadFn) error
}

Uploader uploads files to swarm using a provided UploadFn

type UploaderFunc

type UploaderFunc func(UploadFn) error

func (UploaderFunc) Upload

func (u UploaderFunc) Upload(upload UploadFn) error

Jump to

Keyboard shortcuts

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