Documentation ¶
Overview ¶
Package views provides high-level clients for talking to the main data tree in certain context.
It follows the "wrapper" pattern of http handlers to filter all requests inputs and outputs. The "Router" is object is used by all services or gateways when accessing to data as a given user. Between others, it will - Load ACLs and perform checks to make sure user is allowed to read/write the data - Perform other meta-related or acl-related checks like Quota management, locks, etc.. - Perform encryption/decryption of actual data on the fly - Compress / Decompress archives, - Add metadata collected from any services on the nodes outputted by the responses, - etc...
Index ¶
- Constants
- Variables
- func AccessListFromContext(ctx context.Context) (*permissions.AccessList, error)
- func AncestorsListFromContext(ctx context.Context, node *tree.Node, identifier string, p *ClientsPool, ...) (updatedContext context.Context, parentsList []*tree.Node, e error)
- func CopyMoveNodes(ctx context.Context, router Handler, sourceNode *tree.Node, ...) (oErr error)
- func GetGenericStoreClient(ctx context.Context, storeNamespace string, microClient client.Client) (client *minio.Core, bucket string, e error)
- func GetGenericStoreClientConfig(storeNamespace string) (dataSource string, bucket string, e error)
- func NewCacheDiff() *cacheDiff
- func NewMockNodeKeyManagerClient() encryption.NodeKeyManagerClient
- func NewMockUserKeyTool() key.UserKeyTool
- func UserWorkspacesFromContext(ctx context.Context) map[string]*idm.Workspace
- func WithBranchInfo(ctx context.Context, identifier string, branchInfo BranchInfo, reset ...bool) context.Context
- type AbstractBranchFilter
- func (v *AbstractBranchFilter) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (v *AbstractBranchFilter) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
- func (v *AbstractBranchFilter) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
- func (v *AbstractBranchFilter) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error
- func (v *AbstractBranchFilter) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (v *AbstractBranchFilter) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (streamer tree.NodeProvider_ListNodesClient, e error)
- func (v *AbstractBranchFilter) MultipartAbort(ctx context.Context, node *tree.Node, uploadID string, ...) error
- func (v *AbstractBranchFilter) MultipartComplete(ctx context.Context, node *tree.Node, uploadID string, ...) (minio.ObjectInfo, error)
- func (v *AbstractBranchFilter) MultipartCreate(ctx context.Context, node *tree.Node, requestData *MultipartRequestData) (string, error)
- func (v *AbstractBranchFilter) MultipartListObjectParts(ctx context.Context, node *tree.Node, uploadID string, partNumberMarker int, ...) (lpi minio.ListObjectPartsResult, er error)
- func (v *AbstractBranchFilter) MultipartPutObjectPart(ctx context.Context, node *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ObjectPart, error)
- func (v *AbstractBranchFilter) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (v *AbstractBranchFilter) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- func (v *AbstractBranchFilter) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- type AbstractHandler
- func (a *AbstractHandler) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (a *AbstractHandler) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
- func (a *AbstractHandler) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
- func (a *AbstractHandler) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error
- func (a *AbstractHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (a *AbstractHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
- func (a *AbstractHandler) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, ...) error
- func (a *AbstractHandler) MultipartComplete(ctx context.Context, target *tree.Node, uploadID string, ...) (minio.ObjectInfo, error)
- func (a *AbstractHandler) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
- func (a *AbstractHandler) MultipartList(ctx context.Context, prefix string, requestData *MultipartRequestData) (minio.ListMultipartUploadsResult, error)
- func (a *AbstractHandler) MultipartListObjectParts(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ListObjectPartsResult, error)
- func (a *AbstractHandler) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ObjectPart, error)
- func (a *AbstractHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (a *AbstractHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- func (a *AbstractHandler) SetClientsPool(p *ClientsPool)
- func (a *AbstractHandler) SetNextHandler(h Handler)
- func (a *AbstractHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- type AccessListHandler
- type AclFilterHandler
- func (a *AclFilterHandler) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (a *AclFilterHandler) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
- func (a *AclFilterHandler) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
- func (a *AclFilterHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (a *AclFilterHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (streamer tree.NodeProvider_ListNodesClient, e error)
- func (a *AclFilterHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (a *AclFilterHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- func (a *AclFilterHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- type AclLockFilter
- func (a *AclLockFilter) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (a *AclLockFilter) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
- func (a *AclLockFilter) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- type AclQuotaFilter
- func (a *AclQuotaFilter) ComputeQuota(ctx context.Context, workspace *idm.Workspace) (quota int64, usage int64, err error)
- func (a *AclQuotaFilter) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (a *AclQuotaFilter) FindParentWorkspaces(ctx context.Context, workspace *idm.Workspace) (parentWorkspaces []*idm.Workspace, parentContext context.Context, err error)
- func (a *AclQuotaFilter) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ObjectPart, error)
- func (a *AclQuotaFilter) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (a *AclQuotaFilter) QuotaForWorkspace(ctx context.Context, workspace *idm.Workspace, orderedRoles []string) (maxQuota int64, currentUsage int64, err error)
- type ArchiveHandler
- func (a *ArchiveHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (a *ArchiveHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
- func (a *ArchiveHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- type ArchiveReader
- func (a *ArchiveReader) ExtractAllTar(ctx context.Context, gzipFormat bool, archiveNode *tree.Node, ...) error
- func (a *ArchiveReader) ExtractAllZip(ctx context.Context, archiveNode *tree.Node, targetNode *tree.Node, ...) error
- func (a *ArchiveReader) ListChildrenTar(ctx context.Context, gzipFormat bool, archiveNode *tree.Node, ...) ([]*tree.Node, error)
- func (a *ArchiveReader) ListChildrenZip(ctx context.Context, archiveNode *tree.Node, parentPath string, stat ...bool) ([]*tree.Node, error)
- func (a *ArchiveReader) ReadChildTar(ctx context.Context, gzipFormat bool, writer io.WriteCloser, ...) (int64, error)
- func (a *ArchiveReader) ReadChildZip(ctx context.Context, archiveNode *tree.Node, innerPath string) (io.ReadCloser, error)
- func (a *ArchiveReader) StatChildTar(ctx context.Context, gzipFormat bool, archiveNode *tree.Node, innerPath string) (*tree.Node, error)
- func (a *ArchiveReader) StatChildZip(ctx context.Context, archiveNode *tree.Node, innerPath string) (*tree.Node, error)
- type ArchiveWriter
- type BinaryStoreHandler
- func (a *BinaryStoreHandler) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (a *BinaryStoreHandler) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
- func (a *BinaryStoreHandler) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
- func (a *BinaryStoreHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (a *BinaryStoreHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (c tree.NodeProvider_ListNodesClient, e error)
- func (a *BinaryStoreHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (a *BinaryStoreHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- func (a *BinaryStoreHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- type BranchInfo
- type ClientsPool
- type ContextWrapper
- type CopyRequestData
- type CtxKeepAccessListKey
- type CtxUserAccessListKey
- type EncryptionHandler
- func (e *EncryptionHandler) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (e *EncryptionHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (e *EncryptionHandler) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ObjectPart, error)
- func (e *EncryptionHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (e *EncryptionHandler) SetNodeKeyManagerClient(nodeKeyManagerClient encryption.NodeKeyManagerClient)
- func (e *EncryptionHandler) SetUserKeyTool(keyTool key.UserKeyTool)
- type Executor
- func (e *Executor) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (e *Executor) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
- func (e *Executor) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
- func (a *Executor) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error
- func (e *Executor) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (e *Executor) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
- func (e *Executor) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, ...) error
- func (e *Executor) MultipartComplete(ctx context.Context, target *tree.Node, uploadID string, ...) (minio.ObjectInfo, error)
- func (e *Executor) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
- func (e *Executor) MultipartList(ctx context.Context, prefix string, requestData *MultipartRequestData) (res minio.ListMultipartUploadsResult, err error)
- func (e *Executor) MultipartListObjectParts(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (lpi minio.ListObjectPartsResult, err error)
- func (e *Executor) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ObjectPart, error)
- func (e *Executor) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (e *Executor) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- func (e *Executor) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- type GetRequestData
- type Handler
- type HandlerAuditEvent
- func (h *HandlerAuditEvent) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (h *HandlerAuditEvent) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
- func (h *HandlerAuditEvent) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
- func (h *HandlerAuditEvent) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (h *HandlerAuditEvent) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
- func (h *HandlerAuditEvent) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, ...) error
- func (h *HandlerAuditEvent) MultipartComplete(ctx context.Context, target *tree.Node, uploadID string, ...) (minio.ObjectInfo, error)
- func (h *HandlerAuditEvent) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
- func (h *HandlerAuditEvent) MultipartList(ctx context.Context, prefix string, requestData *MultipartRequestData) (minio.ListMultipartUploadsResult, error)
- func (h *HandlerAuditEvent) MultipartListObjectParts(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ListObjectPartsResult, error)
- func (h *HandlerAuditEvent) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ObjectPart, error)
- func (h *HandlerAuditEvent) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (h *HandlerAuditEvent) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- func (h *HandlerAuditEvent) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- type HandlerEventRead
- type HandlerMock
- func (h *HandlerMock) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (h *HandlerMock) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
- func (h *HandlerMock) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
- func (h *HandlerMock) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error
- func (h *HandlerMock) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (h *HandlerMock) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
- func (h *HandlerMock) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, ...) error
- func (h *HandlerMock) MultipartComplete(ctx context.Context, target *tree.Node, uploadID string, ...) (minio.ObjectInfo, error)
- func (h *HandlerMock) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
- func (h *HandlerMock) MultipartList(ctx context.Context, prefix string, requestData *MultipartRequestData) (minio.ListMultipartUploadsResult, error)
- func (h *HandlerMock) MultipartListObjectParts(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ListObjectPartsResult, error)
- func (h *HandlerMock) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (op minio.ObjectPart, e error)
- func (h *HandlerMock) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (h *HandlerMock) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- func (h *HandlerMock) SetClientsPool(p *ClientsPool)
- func (h *HandlerMock) SetNextHandler(handler Handler)
- func (h *HandlerMock) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- type LoadedSource
- type MockReadCloser
- type MultipartRequestData
- type MultipleRootsHandler
- func (m *MultipleRootsHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
- func (m *MultipleRootsHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- type NodeFilter
- type NodesCallback
- type PathDataSourceHandler
- type PathWorkspaceHandler
- func (a *PathWorkspaceHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
- func (a *PathWorkspaceHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- type PutHandler
- func (m *PutHandler) CreateParent(ctx context.Context, node *tree.Node) error
- func (m *PutHandler) GetOrCreatePutNode(ctx context.Context, nodePath string, size int64) (*tree.Node, error, onCreateErrorFunc)
- func (m *PutHandler) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, ...) error
- func (m *PutHandler) MultipartCreate(ctx context.Context, node *tree.Node, requestData *MultipartRequestData) (string, error)
- func (m *PutHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- type PutRequestData
- type Router
- func (v *Router) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (v *Router) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
- func (v *Router) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
- func (v *Router) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error
- func (v *Router) GetClientsPool() *ClientsPool
- func (v *Router) GetExecutor() Handler
- func (v *Router) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (v *Router) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
- func (v *Router) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, ...) error
- func (v *Router) MultipartComplete(ctx context.Context, target *tree.Node, uploadID string, ...) (minio.ObjectInfo, error)
- func (v *Router) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
- func (v *Router) MultipartList(ctx context.Context, prefix string, requestData *MultipartRequestData) (minio.ListMultipartUploadsResult, error)
- func (v *Router) MultipartListObjectParts(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ListObjectPartsResult, error)
- func (v *Router) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, ...) (minio.ObjectPart, error)
- func (v *Router) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (v *Router) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- func (v *Router) SetClientsPool(p *ClientsPool)
- func (v *Router) SetNextHandler(h Handler)
- func (v *Router) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- func (v *Router) WrapCallback(provider NodesCallback) error
- type RouterEventFilter
- type RouterOptions
- type SynchronousCacheHandler
- func (s *SynchronousCacheHandler) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
- func (s *SynchronousCacheHandler) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
- func (s *SynchronousCacheHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
- func (s *SynchronousCacheHandler) MultipartComplete(ctx context.Context, target *tree.Node, uploadID string, ...) (minio.ObjectInfo, error)
- func (s *SynchronousCacheHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (s *SynchronousCacheHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- func (s *SynchronousCacheHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- type UploadLimitFilter
- type UuidDataSourceHandler
- type UuidNodeHandler
- type UuidRootsHandler
- type VersionHandler
- func (v *VersionHandler) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (v *VersionHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
- func (v *VersionHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
- func (v *VersionHandler) ReadNode(ctx context.Context, req *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- type VirtualNodesBrowser
- func (v *VirtualNodesBrowser) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (streamer tree.NodeProvider_ListNodesClient, e error)
- func (v *VirtualNodesBrowser) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
- type VirtualNodesManager
- func (m *VirtualNodesManager) ByPath(path string) (*tree.Node, bool)
- func (m *VirtualNodesManager) ByUuid(uuid string) (*tree.Node, bool)
- func (m *VirtualNodesManager) ListNodes() []*tree.Node
- func (m *VirtualNodesManager) Load(forceReload ...bool)
- func (m *VirtualNodesManager) ResolveInContext(ctx context.Context, vNode *tree.Node, clientsPool *ClientsPool, create bool, ...) (*tree.Node, error)
- func (m *VirtualNodesManager) ResolvePathWithVars(ctx context.Context, vNode *tree.Node, vars map[string]string, ...) (*tree.Node, error)
- type VirtualNodesResolver
- type WorkspaceRootResolver
- type WrappingStreamer
- func (l *WrappingStreamer) Close() error
- func (l *WrappingStreamer) Recv() (*tree.ListNodesResponse, error)
- func (l *WrappingStreamer) RecvMsg(interface{}) error
- func (l *WrappingStreamer) Send(resp *tree.ListNodesResponse) error
- func (l *WrappingStreamer) SendError(err error) error
- func (l *WrappingStreamer) SendMsg(interface{}) error
Constants ¶
const (
VIEWS_LIBRARY_NAME = "pydio.lib.views"
)
Variables ¶
var ( // IsUnitTestEnv flag prevents among others the ClientPool to look for declared // datasources in the registry. As none is present while running unit tests, it // otherwise times out. IsUnitTestEnv = false )
Functions ¶
func AccessListFromContext ¶
func AccessListFromContext(ctx context.Context) (*permissions.AccessList, error)
func CopyMoveNodes ¶ added in v1.5.0
func CopyMoveNodes(ctx context.Context, router Handler, sourceNode *tree.Node, targetNode *tree.Node, move bool, recursive bool, isTask bool, statusChan chan string, progressChan chan float32) (oErr error)
CopyMoveNodes performs a recursive copy or move operation of a node to a new location. It can be inter- or intra-datasources. It will eventually pass contextual metadata like X-Pydio-Session (to batch event inside the SYNC) or X-Pydio-Move (to reconciliate creates and deletes when move is done between two differing datasources).
func GetGenericStoreClient ¶
func NewCacheDiff ¶ added in v1.5.0
func NewCacheDiff() *cacheDiff
func NewMockNodeKeyManagerClient ¶ added in v1.5.0
func NewMockNodeKeyManagerClient() encryption.NodeKeyManagerClient
func NewMockUserKeyTool ¶ added in v1.5.0
func NewMockUserKeyTool() key.UserKeyTool
func WithBranchInfo ¶
Types ¶
type AbstractBranchFilter ¶
type AbstractBranchFilter struct { AbstractHandler RootNodesCache *cache.Cache // contains filtered or unexported fields }
func (*AbstractBranchFilter) CopyObject ¶
func (v *AbstractBranchFilter) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error)
func (*AbstractBranchFilter) CreateNode ¶
func (v *AbstractBranchFilter) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
func (*AbstractBranchFilter) DeleteNode ¶
func (v *AbstractBranchFilter) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
func (*AbstractBranchFilter) ExecuteWrapped ¶
func (v *AbstractBranchFilter) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error
func (*AbstractBranchFilter) GetObject ¶
func (v *AbstractBranchFilter) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
func (*AbstractBranchFilter) ListNodes ¶
func (v *AbstractBranchFilter) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (streamer tree.NodeProvider_ListNodesClient, e error)
func (*AbstractBranchFilter) MultipartAbort ¶
func (v *AbstractBranchFilter) MultipartAbort(ctx context.Context, node *tree.Node, uploadID string, requestData *MultipartRequestData) error
func (*AbstractBranchFilter) MultipartComplete ¶
func (*AbstractBranchFilter) MultipartCreate ¶
func (v *AbstractBranchFilter) MultipartCreate(ctx context.Context, node *tree.Node, requestData *MultipartRequestData) (string, error)
func (*AbstractBranchFilter) MultipartListObjectParts ¶
func (*AbstractBranchFilter) MultipartPutObjectPart ¶
func (*AbstractBranchFilter) PutObject ¶
func (v *AbstractBranchFilter) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
func (*AbstractBranchFilter) ReadNode ¶
func (v *AbstractBranchFilter) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
func (*AbstractBranchFilter) UpdateNode ¶
func (v *AbstractBranchFilter) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
type AbstractHandler ¶
type AbstractHandler struct { CtxWrapper ContextWrapper // contains filtered or unexported fields }
Abstract Handler implementation simply forwards calls to the next handler
func (*AbstractHandler) CopyObject ¶
func (a *AbstractHandler) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error)
func (*AbstractHandler) CreateNode ¶
func (a *AbstractHandler) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
func (*AbstractHandler) DeleteNode ¶
func (a *AbstractHandler) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
func (*AbstractHandler) ExecuteWrapped ¶
func (a *AbstractHandler) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error
func (*AbstractHandler) GetObject ¶
func (a *AbstractHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
func (*AbstractHandler) ListNodes ¶
func (a *AbstractHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
func (*AbstractHandler) MultipartAbort ¶
func (a *AbstractHandler) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, requestData *MultipartRequestData) error
func (*AbstractHandler) MultipartComplete ¶
func (*AbstractHandler) MultipartCreate ¶
func (a *AbstractHandler) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
func (*AbstractHandler) MultipartList ¶
func (a *AbstractHandler) MultipartList(ctx context.Context, prefix string, requestData *MultipartRequestData) (minio.ListMultipartUploadsResult, error)
func (*AbstractHandler) MultipartListObjectParts ¶
func (*AbstractHandler) MultipartPutObjectPart ¶
func (*AbstractHandler) PutObject ¶
func (a *AbstractHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
func (*AbstractHandler) ReadNode ¶
func (a *AbstractHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
func (*AbstractHandler) SetClientsPool ¶
func (a *AbstractHandler) SetClientsPool(p *ClientsPool)
func (*AbstractHandler) SetNextHandler ¶
func (a *AbstractHandler) SetNextHandler(h Handler)
func (*AbstractHandler) UpdateNode ¶
func (a *AbstractHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
type AccessListHandler ¶
type AccessListHandler struct {
AbstractHandler
}
func NewAccessListHandler ¶
func NewAccessListHandler(adminView bool) *AccessListHandler
type AclFilterHandler ¶
type AclFilterHandler struct {
AbstractHandler
}
func (*AclFilterHandler) CopyObject ¶
func (a *AclFilterHandler) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error)
func (*AclFilterHandler) CreateNode ¶
func (a *AclFilterHandler) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
func (*AclFilterHandler) DeleteNode ¶
func (a *AclFilterHandler) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
func (*AclFilterHandler) GetObject ¶
func (a *AclFilterHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
func (*AclFilterHandler) ListNodes ¶
func (a *AclFilterHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (streamer tree.NodeProvider_ListNodesClient, e error)
func (*AclFilterHandler) PutObject ¶
func (a *AclFilterHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
func (*AclFilterHandler) ReadNode ¶
func (a *AclFilterHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
Check if node is readable and forward to next middleware
func (*AclFilterHandler) UpdateNode ¶
func (a *AclFilterHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
type AclLockFilter ¶
type AclLockFilter struct {
AbstractHandler
}
func (*AclLockFilter) CopyObject ¶
func (a *AclLockFilter) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error)
CopyObject should check: quota on CopyObject operation? Can we copy an object on top of an existing node?
func (*AclLockFilter) MultipartCreate ¶
func (a *AclLockFilter) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
type AclQuotaFilter ¶
type AclQuotaFilter struct {
AbstractHandler
}
func (*AclQuotaFilter) ComputeQuota ¶
func (*AclQuotaFilter) CopyObject ¶
func (a *AclQuotaFilter) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error)
CopyObject checks quota on CopyObject operation.
func (*AclQuotaFilter) FindParentWorkspaces ¶
func (a *AclQuotaFilter) FindParentWorkspaces(ctx context.Context, workspace *idm.Workspace) (parentWorkspaces []*idm.Workspace, parentContext context.Context, err error)
FindParentWorkspaces finds possible parents for the current workspace based on the RESOURCE_OWNER uuid. TODO: add virtual nodes manager.
func (*AclQuotaFilter) MultipartPutObjectPart ¶
func (a *AclQuotaFilter) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, reader io.Reader, requestData *PutRequestData) (minio.ObjectPart, error)
MultipartPutObjectPart checks quota on MultipartPutObjectPart.
func (*AclQuotaFilter) PutObject ¶
func (a *AclQuotaFilter) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
PutObject checks quota on PutObject operation.
func (*AclQuotaFilter) QuotaForWorkspace ¶
func (a *AclQuotaFilter) QuotaForWorkspace(ctx context.Context, workspace *idm.Workspace, orderedRoles []string) (maxQuota int64, currentUsage int64, err error)
QuotaForWorkspace finds quota and computes current usage from ACLs and Tree for a given workspace, in a specific context given by the orderedRoles list.
type ArchiveHandler ¶
type ArchiveHandler struct { AbstractHandler // contains filtered or unexported fields }
func NewArchiveHandler ¶ added in v1.2.1
func NewArchiveHandler() *ArchiveHandler
func (*ArchiveHandler) GetObject ¶
func (a *ArchiveHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
Override the response of GetObject if it is sent on a folder key : create an archive on-the-fly.
func (*ArchiveHandler) ListNodes ¶
func (a *ArchiveHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
func (*ArchiveHandler) ReadNode ¶
func (a *ArchiveHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
Override the response of ReadNode to create a fake stat for archive file
type ArchiveReader ¶
type ArchiveReader struct {
Router Handler
}
func (*ArchiveReader) ExtractAllTar ¶
func (*ArchiveReader) ExtractAllZip ¶
func (*ArchiveReader) ListChildrenTar ¶
func (*ArchiveReader) ListChildrenZip ¶
func (*ArchiveReader) ReadChildTar ¶
func (*ArchiveReader) ReadChildZip ¶
func (a *ArchiveReader) ReadChildZip(ctx context.Context, archiveNode *tree.Node, innerPath string) (io.ReadCloser, error)
func (*ArchiveReader) StatChildTar ¶
type ArchiveWriter ¶
type ArchiveWriter struct {
Router Handler
}
func (*ArchiveWriter) TarSelection ¶
type BinaryStoreHandler ¶
type BinaryStoreHandler struct { AbstractHandler StoreName string AllowPut bool AllowAnonRead bool }
func (*BinaryStoreHandler) CopyObject ¶
func (a *BinaryStoreHandler) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error)
func (*BinaryStoreHandler) CreateNode ¶
func (a *BinaryStoreHandler) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
///////////////////////////// THIS STORE IS NOT WRITEABLE /////////////////////////////
func (*BinaryStoreHandler) DeleteNode ¶
func (a *BinaryStoreHandler) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
func (*BinaryStoreHandler) GetObject ¶
func (a *BinaryStoreHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
func (*BinaryStoreHandler) ListNodes ¶
func (a *BinaryStoreHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (c tree.NodeProvider_ListNodesClient, e error)
Listing of Thumbs Store : do not display content
func (*BinaryStoreHandler) PutObject ¶
func (a *BinaryStoreHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
func (*BinaryStoreHandler) ReadNode ¶
func (a *BinaryStoreHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
Node Info & Node Content : send by UUID,
func (*BinaryStoreHandler) UpdateNode ¶
func (a *BinaryStoreHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
type BranchInfo ¶
type BranchInfo struct { LoadedSource idm.Workspace Root *tree.Node Binary bool AncestorsList map[string][]*tree.Node }
These keys may be enriched in Context depending on the middleware
func GetBranchInfo ¶
func GetBranchInfo(ctx context.Context, identifier string) (BranchInfo, bool)
type ClientsPool ¶
type ClientsPool struct { Sources map[string]LoadedSource // Statically set for testing TreeClient tree.NodeProviderClient TreeClientWrite tree.NodeReceiverClient // contains filtered or unexported fields }
ClientsPool is responsible for discovering available datasources and keeping an up to date registry that is used by the routers.
func NewClientsPool ¶
func NewClientsPool(watchRegistry bool) (pool *ClientsPool)
NewClientsPool creates a client pool and initialises it by calling the registry.
func (*ClientsPool) Close ¶
func (p *ClientsPool) Close()
Close stops the underlying watcher if defined.
func (*ClientsPool) GetDataSourceInfo ¶
func (p *ClientsPool) GetDataSourceInfo(dsName string, retries ...int) (LoadedSource, error)
func (*ClientsPool) GetTreeClient ¶
func (p *ClientsPool) GetTreeClient() tree.NodeProviderClient
func (*ClientsPool) GetTreeClientWrite ¶
func (p *ClientsPool) GetTreeClientWrite() tree.NodeReceiverClient
type CopyRequestData ¶
These keys may be enriched in Context depending on the middleware
type CtxKeepAccessListKey ¶ added in v1.2.4
type CtxKeepAccessListKey struct{}
These keys may be enriched in Context depending on the middleware
type CtxUserAccessListKey ¶ added in v1.4.0
type CtxUserAccessListKey struct{}
These keys may be enriched in Context depending on the middleware
type EncryptionHandler ¶
type EncryptionHandler struct { AbstractHandler // contains filtered or unexported fields }
EncryptionHandler encryption node middleware
func (*EncryptionHandler) CopyObject ¶
func (e *EncryptionHandler) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error)
CopyObject Enriches request metadata for CopyObject with Encryption Materials, if required by datasource
func (*EncryptionHandler) GetObject ¶
func (e *EncryptionHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
GetObject Enriches request metadata for GetObject with Encryption Materials, if required by datasource
func (*EncryptionHandler) MultipartPutObjectPart ¶ added in v1.2.2
func (*EncryptionHandler) PutObject ¶
func (e *EncryptionHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
PutObject Enriches request metadata for PutObject with Encryption Materials, if required by datasource
func (*EncryptionHandler) SetNodeKeyManagerClient ¶ added in v1.5.0
func (e *EncryptionHandler) SetNodeKeyManagerClient(nodeKeyManagerClient encryption.NodeKeyManagerClient)
func (*EncryptionHandler) SetUserKeyTool ¶ added in v1.5.0
func (e *EncryptionHandler) SetUserKeyTool(keyTool key.UserKeyTool)
type Executor ¶
type Executor struct {
AbstractHandler
}
func (*Executor) CopyObject ¶
func (*Executor) CreateNode ¶
func (e *Executor) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
func (*Executor) DeleteNode ¶
func (e *Executor) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
func (*Executor) ExecuteWrapped ¶
func (a *Executor) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error
func (*Executor) GetObject ¶
func (e *Executor) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
func (*Executor) ListNodes ¶
func (e *Executor) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
func (*Executor) MultipartAbort ¶
func (*Executor) MultipartComplete ¶
func (*Executor) MultipartCreate ¶
func (*Executor) MultipartList ¶
func (*Executor) MultipartListObjectParts ¶
func (*Executor) MultipartPutObjectPart ¶
func (*Executor) ReadNode ¶
func (e *Executor) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
func (*Executor) UpdateNode ¶
func (e *Executor) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
type GetRequestData ¶
These keys may be enriched in Context depending on the middleware
type Handler ¶
type Handler interface { tree.NodeProviderClient tree.NodeReceiverClient GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, reader io.Reader, requestData *PutRequestData) (minio.ObjectPart, error) MultipartList(ctx context.Context, prefix string, requestData *MultipartRequestData) (minio.ListMultipartUploadsResult, error) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, requestData *MultipartRequestData) error MultipartComplete(ctx context.Context, target *tree.Node, uploadID string, uploadedParts []minio.CompletePart) (minio.ObjectInfo, error) MultipartListObjectParts(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, maxParts int) (minio.ListObjectPartsResult, error) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error SetNextHandler(h Handler) SetClientsPool(p *ClientsPool) }
type HandlerAuditEvent ¶
type HandlerAuditEvent struct {
AbstractHandler
}
HandlerAuditEvent is responsible for auditing all events on Nodes as soon as the router's option flag "AuditEvent" is set to true.
func (*HandlerAuditEvent) CopyObject ¶
func (h *HandlerAuditEvent) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error)
func (*HandlerAuditEvent) CreateNode ¶
func (h *HandlerAuditEvent) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
CreateNode logs an audit message on each call after having transferred the call to following handlers.
func (*HandlerAuditEvent) DeleteNode ¶
func (h *HandlerAuditEvent) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
DeleteNode logs an audit message on each call after having transferred the call to following handlers.
func (*HandlerAuditEvent) GetObject ¶
func (h *HandlerAuditEvent) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
GetObject logs an audit message on each GetObject Events after calling following handlers.
func (*HandlerAuditEvent) ListNodes ¶
func (h *HandlerAuditEvent) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
ListNodes logs an audit message on each call after having transferred the call to following handlers.
func (*HandlerAuditEvent) MultipartAbort ¶
func (h *HandlerAuditEvent) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, requestData *MultipartRequestData) error
func (*HandlerAuditEvent) MultipartComplete ¶
func (h *HandlerAuditEvent) MultipartComplete(ctx context.Context, target *tree.Node, uploadID string, uploadedParts []minio.CompletePart) (minio.ObjectInfo, error)
func (*HandlerAuditEvent) MultipartCreate ¶
func (h *HandlerAuditEvent) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
func (*HandlerAuditEvent) MultipartList ¶
func (h *HandlerAuditEvent) MultipartList(ctx context.Context, prefix string, requestData *MultipartRequestData) (minio.ListMultipartUploadsResult, error)
func (*HandlerAuditEvent) MultipartListObjectParts ¶
func (*HandlerAuditEvent) MultipartPutObjectPart ¶
func (h *HandlerAuditEvent) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, reader io.Reader, requestData *PutRequestData) (minio.ObjectPart, error)
func (*HandlerAuditEvent) PutObject ¶
func (h *HandlerAuditEvent) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
PutObject logs an audit message after calling following handlers.
func (*HandlerAuditEvent) ReadNode ¶
func (h *HandlerAuditEvent) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
ReadNode only forwards call to next handler, it call too often to provide useful audit info.
func (*HandlerAuditEvent) UpdateNode ¶
func (h *HandlerAuditEvent) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
UpdateNode logs an audit message on each call after having transferred the call to following handlers.
type HandlerEventRead ¶
type HandlerEventRead struct {
AbstractHandler
}
func (*HandlerEventRead) GetObject ¶
func (h *HandlerEventRead) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
func (*HandlerEventRead) ListNodes ¶
func (h *HandlerEventRead) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
type HandlerMock ¶
func NewHandlerMock ¶
func NewHandlerMock() *HandlerMock
func (*HandlerMock) CopyObject ¶
func (h *HandlerMock) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error)
func (*HandlerMock) CreateNode ¶
func (h *HandlerMock) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
func (*HandlerMock) DeleteNode ¶
func (h *HandlerMock) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
func (*HandlerMock) ExecuteWrapped ¶
func (h *HandlerMock) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error
func (*HandlerMock) GetObject ¶
func (h *HandlerMock) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
func (*HandlerMock) ListNodes ¶
func (h *HandlerMock) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
func (*HandlerMock) MultipartAbort ¶
func (h *HandlerMock) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, requestData *MultipartRequestData) error
func (*HandlerMock) MultipartComplete ¶
func (*HandlerMock) MultipartCreate ¶
func (h *HandlerMock) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
func (*HandlerMock) MultipartList ¶
func (h *HandlerMock) MultipartList(ctx context.Context, prefix string, requestData *MultipartRequestData) (minio.ListMultipartUploadsResult, error)
func (*HandlerMock) MultipartListObjectParts ¶
func (*HandlerMock) MultipartPutObjectPart ¶
func (*HandlerMock) PutObject ¶
func (h *HandlerMock) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
func (*HandlerMock) ReadNode ¶
func (h *HandlerMock) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
func (*HandlerMock) SetClientsPool ¶
func (h *HandlerMock) SetClientsPool(p *ClientsPool)
func (*HandlerMock) SetNextHandler ¶
func (h *HandlerMock) SetNextHandler(handler Handler)
func (*HandlerMock) UpdateNode ¶
func (h *HandlerMock) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
type LoadedSource ¶
type LoadedSource struct { object.DataSource Client *minio.Core }
These keys may be enriched in Context depending on the middleware
func NewSource ¶
func NewSource(data *object.DataSource) (LoadedSource, error)
NewSource instantiates a LoadedSource with a minio client
type MockReadCloser ¶
func (MockReadCloser) Close ¶
func (r MockReadCloser) Close() error
type MultipartRequestData ¶
type MultipartRequestData struct { Metadata map[string]string ListKeyMarker string ListUploadIDMarker string ListDelimiter string ListMaxUploads int }
These keys may be enriched in Context depending on the middleware
type MultipleRootsHandler ¶
type MultipleRootsHandler struct {
AbstractBranchFilter
}
func NewPathMultipleRootsHandler ¶
func NewPathMultipleRootsHandler() *MultipleRootsHandler
func (*MultipleRootsHandler) ListNodes ¶
func (m *MultipleRootsHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
func (*MultipleRootsHandler) ReadNode ¶
func (m *MultipleRootsHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
type NodeFilter ¶
type NodesCallback ¶
type NodesCallback func(inputFilter NodeFilter, outputFilter NodeFilter) error
type PathDataSourceHandler ¶
type PathDataSourceHandler struct {
AbstractBranchFilter
}
func NewPathDataSourceHandler ¶
func NewPathDataSourceHandler() *PathDataSourceHandler
type PathWorkspaceHandler ¶
type PathWorkspaceHandler struct {
AbstractBranchFilter
}
func NewPathWorkspaceHandler ¶
func NewPathWorkspaceHandler() *PathWorkspaceHandler
func (*PathWorkspaceHandler) ListNodes ¶
func (a *PathWorkspaceHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
func (*PathWorkspaceHandler) ReadNode ¶
func (a *PathWorkspaceHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
type PutHandler ¶
type PutHandler struct {
AbstractHandler
}
func (*PutHandler) CreateParent ¶
Recursively create parents
func (*PutHandler) GetOrCreatePutNode ¶
func (m *PutHandler) GetOrCreatePutNode(ctx context.Context, nodePath string, size int64) (*tree.Node, error, onCreateErrorFunc)
Create a temporary node before calling a Put request. If it is an update, should send back the already existing node Returns the node, a flag to tell wether it is created or not, and eventually an error The Put event will afterward update the index
func (*PutHandler) MultipartAbort ¶ added in v1.2.2
func (m *PutHandler) MultipartAbort(ctx context.Context, target *tree.Node, uploadID string, requestData *MultipartRequestData) error
func (*PutHandler) MultipartCreate ¶
func (m *PutHandler) MultipartCreate(ctx context.Context, node *tree.Node, requestData *MultipartRequestData) (string, error)
MultipartCreate registers a node in the virtual fs with size 0 and ETag: temporary (we do not have the real size at this point because we are using streams.)
type PutRequestData ¶
type PutRequestData struct { Size int64 Md5Sum []byte Sha256Sum []byte Metadata map[string]string MultipartUploadID string MultipartPartID int }
These keys may be enriched in Context depending on the middleware
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
func NewRouter ¶
func NewRouter(pool *ClientsPool, handlers []Handler) *Router
NewRouter creates and configures a new router with given ClientsPool and Handlers.
func NewStandardRouter ¶
func NewStandardRouter(options RouterOptions) *Router
NewStandardRouter returns a new configured instance of the default standard router.
func NewUuidRouter ¶
func NewUuidRouter(options RouterOptions) *Router
NewUuidRouter returns a new configured instance of a router that relies on nodes UUID rather than the usual Node path.
func (*Router) CopyObject ¶
func (*Router) CreateNode ¶
func (v *Router) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
func (*Router) DeleteNode ¶
func (v *Router) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
func (*Router) ExecuteWrapped ¶
func (v *Router) ExecuteWrapped(inputFilter NodeFilter, outputFilter NodeFilter, provider NodesCallback) error
func (*Router) GetExecutor ¶
GetExecutor uses the very last handler (Executor) to send a request with a previously filled context.
func (*Router) GetObject ¶
func (v *Router) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
func (*Router) ListNodes ¶
func (v *Router) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
func (*Router) MultipartAbort ¶
func (*Router) MultipartComplete ¶
func (*Router) MultipartCreate ¶
func (*Router) MultipartList ¶
func (*Router) MultipartListObjectParts ¶
func (*Router) MultipartPutObjectPart ¶
func (*Router) ReadNode ¶
func (v *Router) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
func (*Router) SetClientsPool ¶
func (v *Router) SetClientsPool(p *ClientsPool)
func (*Router) SetNextHandler ¶
To respect Handler interface
func (*Router) UpdateNode ¶
func (v *Router) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
func (*Router) WrapCallback ¶
func (v *Router) WrapCallback(provider NodesCallback) error
type RouterEventFilter ¶
type RouterEventFilter struct { Router //RootNodesCache map[string]*tree.Node RootNodesCache *cache.Cache }
Extended Router used mainly to filter events sent from inside to outside the application
func NewRouterEventFilter ¶
func NewRouterEventFilter(options RouterOptions) *RouterEventFilter
NewRouterEventFilter creates a new EventFilter properly initialized
type RouterOptions ¶
type RouterOptions struct { AdminView bool WatchRegistry bool LogReadEvents bool BrowseVirtualNodes bool // AuditEvent flag turns audit logger ON for the corresponding router. AuditEvent bool Synchronous bool }
RouterOptions holds configuration flags to pass to a routeur constructor easily.
type SynchronousCacheHandler ¶ added in v1.5.0
type SynchronousCacheHandler struct {
AbstractHandler
}
func NewSynchronousCacheHandler ¶ added in v1.5.0
func NewSynchronousCacheHandler() *SynchronousCacheHandler
func (*SynchronousCacheHandler) CreateNode ¶ added in v1.5.0
func (s *SynchronousCacheHandler) CreateNode(ctx context.Context, in *tree.CreateNodeRequest, opts ...client.CallOption) (*tree.CreateNodeResponse, error)
func (*SynchronousCacheHandler) DeleteNode ¶ added in v1.5.0
func (s *SynchronousCacheHandler) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
func (*SynchronousCacheHandler) ListNodes ¶ added in v1.5.0
func (s *SynchronousCacheHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
func (*SynchronousCacheHandler) MultipartComplete ¶ added in v1.5.0
func (*SynchronousCacheHandler) PutObject ¶ added in v1.5.0
func (s *SynchronousCacheHandler) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
func (*SynchronousCacheHandler) ReadNode ¶ added in v1.5.0
func (s *SynchronousCacheHandler) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
func (*SynchronousCacheHandler) UpdateNode ¶ added in v1.5.0
func (s *SynchronousCacheHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
type UploadLimitFilter ¶
type UploadLimitFilter struct {
AbstractHandler
}
func (*UploadLimitFilter) MultipartPutObjectPart ¶
func (a *UploadLimitFilter) MultipartPutObjectPart(ctx context.Context, target *tree.Node, uploadID string, partNumberMarker int, reader io.Reader, requestData *PutRequestData) (minio.ObjectPart, error)
Check Upload Limits (size, extension) defined in the frontend on MultipartPutObjectPart
type UuidDataSourceHandler ¶
type UuidDataSourceHandler struct {
AbstractBranchFilter
}
func NewUuidDataSourceHandler ¶
func NewUuidDataSourceHandler() *UuidDataSourceHandler
type UuidNodeHandler ¶
type UuidNodeHandler struct {
AbstractBranchFilter
}
func NewUuidNodeHandler ¶
func NewUuidNodeHandler() *UuidNodeHandler
type UuidRootsHandler ¶
type UuidRootsHandler struct {
AbstractBranchFilter
}
func NewUuidRootsHandler ¶
func NewUuidRootsHandler() *UuidRootsHandler
type VersionHandler ¶
type VersionHandler struct { AbstractHandler // contains filtered or unexported fields }
func (*VersionHandler) CopyObject ¶
func (v *VersionHandler) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, requestData *CopyRequestData) (int64, error)
Read from Version Store if request contains a VersionID
func (*VersionHandler) GetObject ¶
func (v *VersionHandler) GetObject(ctx context.Context, node *tree.Node, requestData *GetRequestData) (io.ReadCloser, error)
Redirect to Version Store if request contains a VersionID
func (*VersionHandler) ListNodes ¶
func (v *VersionHandler) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (tree.NodeProvider_ListNodesClient, error)
Create list of nodes if the Versions are required
func (*VersionHandler) ReadNode ¶
func (v *VersionHandler) ReadNode(ctx context.Context, req *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
type VirtualNodesBrowser ¶
type VirtualNodesBrowser struct {
AbstractHandler
}
func NewVirtualNodesBrowser ¶
func NewVirtualNodesBrowser() *VirtualNodesBrowser
func (*VirtualNodesBrowser) ListNodes ¶
func (v *VirtualNodesBrowser) ListNodes(ctx context.Context, in *tree.ListNodesRequest, opts ...client.CallOption) (streamer tree.NodeProvider_ListNodesClient, e error)
ListNodes Append virtual nodes to the datasources list if admin is listing the root of the tree
func (*VirtualNodesBrowser) ReadNode ¶
func (v *VirtualNodesBrowser) ReadNode(ctx context.Context, in *tree.ReadNodeRequest, opts ...client.CallOption) (*tree.ReadNodeResponse, error)
ReadNode creates a fake node if admin is reading info about a virtual node
type VirtualNodesManager ¶
VirtualNodesManager keeps an internal list of virtual nodes. They are cached for one minute to avoid too many requests on docstore service.
func GetVirtualNodesManager ¶
func GetVirtualNodesManager() *VirtualNodesManager
GetVirtualNodesManager creates a new VirtualNodesManager.
func (*VirtualNodesManager) ByPath ¶
func (m *VirtualNodesManager) ByPath(path string) (*tree.Node, bool)
ByPath finds a VirtualNode by its Path.
func (*VirtualNodesManager) ByUuid ¶
func (m *VirtualNodesManager) ByUuid(uuid string) (*tree.Node, bool)
ByUuid finds a VirtualNode by its Uuid.
func (*VirtualNodesManager) ListNodes ¶
func (m *VirtualNodesManager) ListNodes() []*tree.Node
ListNodes simply returns the internally cached list.
func (*VirtualNodesManager) Load ¶
func (m *VirtualNodesManager) Load(forceReload ...bool)
Load requests the virtual nodes from the DocStore service.
func (*VirtualNodesManager) ResolveInContext ¶
func (m *VirtualNodesManager) ResolveInContext(ctx context.Context, vNode *tree.Node, clientsPool *ClientsPool, create bool, retry ...bool) (*tree.Node, error)
ResolveInContext computes the actual node Path based on the resolution metadata of the virtual node and the current metadata contained in context.
func (*VirtualNodesManager) ResolvePathWithVars ¶ added in v1.5.0
func (m *VirtualNodesManager) ResolvePathWithVars(ctx context.Context, vNode *tree.Node, vars map[string]string, clientsPool *ClientsPool) (*tree.Node, error)
ResolvePathWithVars performs the actual Path resolution and returns a node. There is no guarantee that the node exists.
type VirtualNodesResolver ¶
type VirtualNodesResolver struct {
AbstractBranchFilter
}
func NewVirtualNodesHandler ¶
func NewVirtualNodesHandler() *VirtualNodesResolver
type WorkspaceRootResolver ¶
type WorkspaceRootResolver struct {
AbstractBranchFilter
}
func NewWorkspaceRootResolver ¶
func NewWorkspaceRootResolver() *WorkspaceRootResolver
type WrappingStreamer ¶
type WrappingStreamer struct {
// contains filtered or unexported fields
}
func NewWrappingStreamer ¶
func NewWrappingStreamer() *WrappingStreamer
func (*WrappingStreamer) Close ¶
func (l *WrappingStreamer) Close() error
func (*WrappingStreamer) Recv ¶
func (l *WrappingStreamer) Recv() (*tree.ListNodesResponse, error)
func (*WrappingStreamer) RecvMsg ¶
func (l *WrappingStreamer) RecvMsg(interface{}) error
func (*WrappingStreamer) Send ¶
func (l *WrappingStreamer) Send(resp *tree.ListNodesResponse) error
func (*WrappingStreamer) SendError ¶
func (l *WrappingStreamer) SendError(err error) error
func (*WrappingStreamer) SendMsg ¶
func (l *WrappingStreamer) SendMsg(interface{}) error
Source Files ¶
- archive-reader.go
- archive-writer.go
- clients-pool.go
- common.go
- copy-move.go
- handler-abstract.go
- handler-access-list.go
- handler-acl-filter.go
- handler-acl-lock.go
- handler-acl-quota.go
- handler-archive.go
- handler-audit-events.go
- handler-binary-store.go
- handler-data-upload-limit.go
- handler-encryption-mocks.go
- handler-encryption.go
- handler-events-read.go
- handler-exec.go
- handler-mock.go
- handler-path-abstract-filter.go
- handler-path-datasource.go
- handler-path-multiple-roots.go
- handler-path-resolve-root.go
- handler-path-workspace.go
- handler-put.go
- handler-sync-cache.go
- handler-uuid-datasource.go
- handler-uuid-multiple-roots.go
- handler-uuid-workspace.go
- handler-version.go
- handler-virtual-browser.go
- handler-virtual-resolver.go
- router-event-filter.go
- router.go
- storage-generic-store.go
- virtual-nodes-manager.go
- wrapping-streamer.go