client

package
v0.0.0-...-69abfec Latest Latest
Warning

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

Go to latest
Published: Jun 19, 2020 License: GPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultGateway = "http://localhost:8500"
	DefaultClient  = NewClient(DefaultGateway)
)
View Source
var ErrNoFeedUpdatesFound = errors.New("No updates found for this feed")

ErrNoFeedUpdatesFound is returned when Swarm cannot find updates of the given feed

View Source
var (
	ErrUnauthorized = errors.New("unauthorized")
)

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) CreateFeedWithManifest

func (c *Client) CreateFeedWithManifest(request *feed.Request) (string, error)

CreateFeedWithManifest creates a feed manifest, initializing it with the provided data Returns the resulting feed manifest address that you can use to include in an ENS Resolver (setContent) or reference future updates (Client.UpdateFeed)

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, credentials 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, credentials 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) GetFeedRequest

func (c *Client) GetFeedRequest(query *feed.Query, manifestAddressOrDomain string) (*feed.Request, error)

GetFeedRequest returns a structure that describes the referenced feed status manifestAddressOrDomain is the address you obtained in CreateFeedWithManifest or an ENS domain whose Resolver points to that address

func (*Client) List

func (c *Client) List(hash, prefix, credentials 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) QueryFeed

func (c *Client) QueryFeed(query *feed.Query, manifestAddressOrDomain string) (io.ReadCloser, error)

QueryFeed returns a byte stream with the raw content of the feed update manifestAddressOrDomain is the address you obtained in CreateFeedWithManifest or an ENS domain whose Resolver points to that address

func (*Client) TarUpload

func (c *Client) TarUpload(hash string, uploader Uploader, defaultPath string, 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) UpdateFeed

func (c *Client) UpdateFeed(request *feed.Request) error

UpdateFeed allows you to set a new version of your content

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
}

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