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 GetSessionID(ctx context.Context) (string, bool)
- 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
- func WithSessionID(ctx context.Context, session string) 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) StreamChanges(ctx context.Context, in *tree.StreamChangesRequest, opts ...client.CallOption) (tree.NodeChangesStreamer_StreamChangesClient, 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) StreamChanges(ctx context.Context, in *tree.StreamChangesRequest, opts ...client.CallOption) (tree.NodeChangesStreamer_StreamChangesClient, error)
- func (a *AbstractHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- func (a *AbstractHandler) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, ...) error
- type AccessListHandler
- type AclContentLockFilter
- func (a *AclContentLockFilter) CopyObject(ctx context.Context, from *tree.Node, to *tree.Node, ...) (int64, error)
- func (a *AclContentLockFilter) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
- func (a *AclContentLockFilter) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, ...) (int64, error)
- func (a *AclContentLockFilter) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, ...) error
- 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)
- func (a *AclFilterHandler) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, ...) error
- type AclLockFilter
- 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)
- func (a *AclQuotaFilter) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, ...) 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 ChangesWrappingStreamer
- func (l ChangesWrappingStreamer) Close() error
- func (l *ChangesWrappingStreamer) Recv() (*tree.NodeChangeEvent, error)
- func (l ChangesWrappingStreamer) RecvMsg(m interface{}) error
- func (l ChangesWrappingStreamer) Send(in interface{}) error
- func (l ChangesWrappingStreamer) SendError(err error) error
- func (l ChangesWrappingStreamer) SendMsg(msg interface{}) error
- 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) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, 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) StreamChanges(ctx context.Context, in *tree.StreamChangesRequest, opts ...client.CallOption) (tree.NodeChangesStreamer_StreamChangesClient, error)
- func (e *Executor) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- func (e *Executor) WrappedCanApply(_ context.Context, _ context.Context, _ *tree.NodeChangeEvent) 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) StreamChanges(ctx context.Context, in *tree.StreamChangesRequest, opts ...client.CallOption) (tree.NodeChangesStreamer_StreamChangesClient, error)
- func (h *HandlerMock) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- func (h *HandlerMock) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, ...) 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 NodeWrappingStreamer
- func (l NodeWrappingStreamer) Close() error
- func (n *NodeWrappingStreamer) Recv() (*tree.ListNodesResponse, error)
- func (l NodeWrappingStreamer) RecvMsg(m interface{}) error
- func (l NodeWrappingStreamer) Send(in interface{}) error
- func (l NodeWrappingStreamer) SendError(err error) error
- func (l NodeWrappingStreamer) SendMsg(msg interface{}) error
- 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) StreamChanges(ctx context.Context, in *tree.StreamChangesRequest, opts ...client.CallOption) (tree.NodeChangesStreamer_StreamChangesClient, error)
- func (v *Router) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- func (v *Router) WrapCallback(provider NodesCallback) error
- func (v *Router) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, ...) error
- type RouterEventFilter
- type RouterOptions
- type SyncFolderTasksHandler
- func (h *SyncFolderTasksHandler) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
- func (h *SyncFolderTasksHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
- 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 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
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, tFunc ...i18n.TranslateFunc) (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 GetSessionID ¶
GetSessionID returns the session ID in context
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) StreamChanges ¶
func (v *AbstractBranchFilter) StreamChanges(ctx context.Context, in *tree.StreamChangesRequest, opts ...client.CallOption) (tree.NodeChangesStreamer_StreamChangesClient, 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) StreamChanges ¶
func (a *AbstractHandler) StreamChanges(ctx context.Context, in *tree.StreamChangesRequest, opts ...client.CallOption) (tree.NodeChangesStreamer_StreamChangesClient, error)
func (*AbstractHandler) UpdateNode ¶
func (a *AbstractHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
func (*AbstractHandler) WrappedCanApply ¶
func (a *AbstractHandler) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, operation *tree.NodeChangeEvent) error
type AccessListHandler ¶
type AccessListHandler struct {
AbstractHandler
}
func NewAccessListHandler ¶
func NewAccessListHandler(adminView bool) *AccessListHandler
type AclContentLockFilter ¶
type AclContentLockFilter struct {
AbstractHandler
}
func (*AclContentLockFilter) CopyObject ¶
func (a *AclContentLockFilter) 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 (*AclContentLockFilter) MultipartCreate ¶
func (a *AclContentLockFilter) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
func (*AclContentLockFilter) PutObject ¶
func (a *AclContentLockFilter) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
PutObject check locks before allowing Put operation.
func (*AclContentLockFilter) WrappedCanApply ¶
func (a *AclContentLockFilter) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, operation *tree.NodeChangeEvent) error
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)
func (*AclFilterHandler) WrappedCanApply ¶
func (a *AclFilterHandler) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, operation *tree.NodeChangeEvent) error
type AclLockFilter ¶
type AclLockFilter struct {
AbstractHandler
}
func (*AclLockFilter) PutObject ¶
func (a *AclLockFilter) PutObject(ctx context.Context, node *tree.Node, reader io.Reader, requestData *PutRequestData) (int64, error)
PutObject check locks before allowing Put operation.
func (*AclLockFilter) WrappedCanApply ¶
func (a *AclLockFilter) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, operation *tree.NodeChangeEvent) error
WrappedCanApply will perform checks on quota to make sure an operation is authorized
type AclQuotaFilter ¶
type AclQuotaFilter struct {
AbstractHandler
}
func (*AclQuotaFilter) ComputeQuota ¶
func (a *AclQuotaFilter) ComputeQuota(ctx context.Context, workspace *idm.Workspace) (quota int64, usage int64, err error)
ComputeQuota finds quota and current usage for a given workspace
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.
func (*AclQuotaFilter) WrappedCanApply ¶
func (a *AclQuotaFilter) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, operation *tree.NodeChangeEvent) error
WrappedCanApply will perform checks on quota to make sure an operation is authorized
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 ChangesWrappingStreamer ¶
type ChangesWrappingStreamer struct {
// contains filtered or unexported fields
}
func NewChangesWrappingStreamer ¶
func NewChangesWrappingStreamer() *ChangesWrappingStreamer
func (*ChangesWrappingStreamer) Recv ¶
func (l *ChangesWrappingStreamer) Recv() (*tree.NodeChangeEvent, error)
func (ChangesWrappingStreamer) RecvMsg ¶
func (l ChangesWrappingStreamer) RecvMsg(m interface{}) error
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 the 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 the datasource.
func (*EncryptionHandler) MultipartCreate ¶ added in v1.6.0
func (e *EncryptionHandler) MultipartCreate(ctx context.Context, target *tree.Node, requestData *MultipartRequestData) (string, error)
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) StreamChanges ¶
func (e *Executor) StreamChanges(ctx context.Context, in *tree.StreamChangesRequest, opts ...client.CallOption) (tree.NodeChangesStreamer_StreamChangesClient, error)
func (*Executor) UpdateNode ¶
func (e *Executor) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
func (*Executor) WrappedCanApply ¶
type GetRequestData ¶
These keys may be enriched in Context depending on the middleware
type Handler ¶
type Handler interface { tree.NodeProviderClient tree.NodeReceiverClient tree.NodeChangesStreamerClient 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 WrappedCanApply(srcCtx context.Context, targetCtx context.Context, operation *tree.NodeChangeEvent) 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) StreamChanges ¶
func (h *HandlerMock) StreamChanges(ctx context.Context, in *tree.StreamChangesRequest, opts ...client.CallOption) (tree.NodeChangesStreamer_StreamChangesClient, error)
func (*HandlerMock) UpdateNode ¶
func (h *HandlerMock) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
func (*HandlerMock) WrappedCanApply ¶
func (h *HandlerMock) WrappedCanApply(srcCtx context.Context, targetCtx context.Context, operation *tree.NodeChangeEvent) 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
func WithBucketName ¶
func WithBucketName(s LoadedSource, bucket string) LoadedSource
WithBucketName creates a copy of a LoadedSource with a bucket name
func (LoadedSource) MarshalLogObject ¶
func (s LoadedSource) MarshalLogObject(encoder zapcore.ObjectEncoder) error
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 NodeWrappingStreamer ¶
type NodeWrappingStreamer struct {
// contains filtered or unexported fields
}
func NewWrappingStreamer ¶
func NewWrappingStreamer() *NodeWrappingStreamer
func (*NodeWrappingStreamer) Recv ¶
func (n *NodeWrappingStreamer) Recv() (*tree.ListNodesResponse, error)
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) StreamChanges ¶
func (v *Router) StreamChanges(ctx context.Context, in *tree.StreamChangesRequest, opts ...client.CallOption) (tree.NodeChangesStreamer_StreamChangesClient, error)
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
func (*Router) WrappedCanApply ¶
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 SynchronousCache bool SynchronousTasks bool }
RouterOptions holds configuration flags to pass to a routeur constructor easily.
type SyncFolderTasksHandler ¶
type SyncFolderTasksHandler struct {
AbstractHandler
}
SyncFolderTasksHandler is a handler implementing synchronous operations for moving or deleting folders
func (*SyncFolderTasksHandler) DeleteNode ¶
func (h *SyncFolderTasksHandler) DeleteNode(ctx context.Context, in *tree.DeleteNodeRequest, opts ...client.CallOption) (*tree.DeleteNodeResponse, error)
DeleteNode synchronously and recursively delete a node
func (*SyncFolderTasksHandler) UpdateNode ¶
func (h *SyncFolderTasksHandler) UpdateNode(ctx context.Context, in *tree.UpdateNodeRequest, opts ...client.CallOption) (*tree.UpdateNodeResponse, error)
UpdateNode synchronously and recursively performs a Move operation of a node
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 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
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-content-lock.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-sync-folder-tasks.go
- handler-uuid-datasource.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
- stream-wrappers.go
- virtual-nodes-manager.go