Documentation ¶
Overview ¶
Package helpers provides useful wrappers for clients using the lakeFS OpenAPI.
Index ¶
- Variables
- func ClientDownload(ctx context.Context, client api.ClientWithResponsesInterface, ...) (*api.ObjectStats, io.ReadCloser, error)
- func ClientUpload(ctx context.Context, client api.ClientWithResponsesInterface, ...) (*api.ObjectStats, error)
- func ResponseAsError(response interface{}) error
- type AdapterFactory
- type ClientAdapter
- type ObjectStats
- Bugs
Constants ¶
This section is empty.
Variables ¶
var ( // ErrUnsupportedProtocol is the error returned when lakeFS server requests the client // use a protocol it does not know about. Until recompiled to use a newer client, // upload the object using through the lakeFS server. ErrUnsupportedProtocol = errors.New("unsupported protocol") // ErrAuthenticationFailed is the error returned when the client lacks authentication // to access the backing store directly. Indirect access through the lakeFS server // should still be possible. ErrAuthenticationFailed = errors.New("authentication failed") // ErrRequestFailed is an error returned for failing lakeFS server replies. ErrRequestFailed = errors.New("request failed") )
Functions ¶
func ClientDownload ¶
func ClientDownload(ctx context.Context, client api.ClientWithResponsesInterface, repoID, ref, filePath string) (*api.ObjectStats, io.ReadCloser, error)
ClientDownload downloads a file using client-side ("direct") access to underlying storage. It requires credentials both to lakeFS and to underlying storage, but considerably reduces the load on the lakeFS server.
func ClientUpload ¶
func ClientUpload(ctx context.Context, client api.ClientWithResponsesInterface, repoID, branchID, filePath string, metadata map[string]string, contents io.ReadSeeker) (*api.ObjectStats, error)
ClientUpload uploads contents as a file using client-side ("direct") access to underlying storage. It requires credentials both to lakeFS and to underlying storage, but considerably reduces the load on the lakeFS server.
func ResponseAsError ¶
func ResponseAsError(response interface{}) error
ResponseAsError returns a ErrRequestFailed wrapping a response from the server. It searches for a non-nil unsuccessful HTTPResponse field and uses its message, along with a Body that it assumes is an api.Error.
Types ¶
type AdapterFactory ¶
type AdapterFactory map[string]func() (ClientAdapter, error)
type ClientAdapter ¶
type ClientAdapter interface { // Upload upload data from contents to physicalAddress and returns stored stats. // Returned MTime may be zero. Upload(ctx context.Context, physicalAddress *url.URL, contents io.ReadSeeker) (ObjectStats, error) // Download returns a Reader to download data from physicalAddress. The Close method // of that Reader can return errors! Download(ctx context.Context, physicalAddress *url.URL) (io.ReadCloser, error) }
ClientAdapter abstracts operations on a backing store.
func NewAdapter ¶
func NewAdapter(protocol string) (ClientAdapter, error)
NewAdapter returns a ClientAdapter for protocol.
type ObjectStats ¶
type ObjectStats struct { // Size is the number of bytes. Size int64 // ETag is a unique identifier of the contents. ETag string // MTime is the time stored for last object modification. It can be returned as 0 // from calls to ClientAdapter.Upload(). MTime time.Time }
ObjectStats metadata of an object stored on a backing store.
Notes ¶
Bugs ¶
Unavailable on S3, remove this field entirely
OR add it to the server staging manager API.