fs

package
v0.15.6 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2024 License: BSD-3-Clause Imports: 18 Imported by: 18

Documentation

Index

Constants

View Source
const (
	// FileSystemConnectionCreationTimeoutDefault is a default timeout value of connection error
	FileSystemConnectionCreationTimeoutDefault = 1 * time.Minute
	// FileSystemConnectionLifespanDefault is a default lifespan of a connection
	FileSystemConnectionLifespanDefault = 1 * time.Hour
	// FileSystemTimeoutDefault is a default value of timeout
	FileSystemTimeoutDefault = 5 * time.Minute
	// FileSystemTCPBufferSizeDefault is a default value of tcp buffer size
	FileSystemTCPBufferSizeDefault = 4 * 1024 * 1024

	// FileSystemMetadataConnectionInitNumberDefault is a default value of connection init number
	FileSystemMetadataConnectionInitNumberDefault = 1
	// FileSystemMetadataConnectionMaxNumberDefault is a default number of connection max value
	FileSystemMetadataConnectionMaxNumberDefault = 2
	// FileSystemMetadataConnectionMaxIdleNumberDefault is a default number of max idle connections
	FileSystemMetadataConnectionMaxIdleNumberDefault = 2

	// FileSystemIOConnectionInitNumberDefault is a default value of connection init number
	FileSystemIOConnectionInitNumberDefault = 0
	// FileSystemIOConnectionMaxNumberDefault is a default number of connection max value
	FileSystemIOConnectionMaxNumberDefault = 10
	// FileSystemIOConnectionMaxIdleNumberDefault is a default number of max idle connections
	FileSystemIOConnectionMaxIdleNumberDefault = 4
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CacheConfig added in v0.15.0

type CacheConfig struct {
	Timeout                 types.Duration                `yaml:"timeout,omitempty" json:"timeout,omitempty"`           // cache timeout
	CleanupTime             types.Duration                `yaml:"cleanup_time,omitempty" json:"cleanup_time,omitempty"` // cache cleanup time
	MetadataTimeoutSettings []MetadataCacheTimeoutSetting `yaml:"metadata_timeout_settings,omitempty" json:"metadata_timeout_settings,omitempty"`
	// determine if we will invalidate parent dir's entry cache
	// at subdir/file creation/deletion
	// turn to false to allow short cache inconsistency
	InvalidateParentEntryCacheImmediately bool `yaml:"invalidate_parent_entry_cache_immediately,omitempty" json:"invalidate_parent_entry_cache_immediately,omitempty"`
	// for mysql iCAT backend, this should be true.
	// for postgresql iCAT backend, this can be false.
	StartNewTransaction bool `yaml:"start_new_transaction,omitempty" json:"start_new_transaction,omitempty"`
}

CacheConfig defines cache config

func NewDefaultCacheConfig added in v0.15.0

func NewDefaultCacheConfig() CacheConfig

NewDefaultCacheConfig creates a new default CacheConfig

type ConnectionConfig added in v0.15.0

type ConnectionConfig struct {
	CreationTimeout  types.Duration `yaml:"creation_timeout,omitempty" json:"creation_timeout,omitempty"`   // timeout for creating a new connection
	InitNumber       int            `yaml:"init_number,omitempty" json:"init_number,omitempty"`             // number of connections created when init
	MaxNumber        int            `yaml:"max_number,omitempty" json:"max_number,omitempty"`               // max number of connections
	MaxIdleNumber    int            `yaml:"max_idle_number,omitempty" json:"max_idle_number,omitempty"`     // max number of idle connections
	Lifespan         types.Duration `yaml:"lifespan,omitempty" json:"lifespan,omitempty"`                   // connection's lifespan (max time to be reused)
	OperationTimeout types.Duration `yaml:"operation_timeout,omitempty" json:"operation_timeout,omitempty"` // timeout for iRODS operations
	IdleTimeout      types.Duration `yaml:"idle_timeout,omitempty" json:"idle_timeout,omitempty"`           // time out for being idle, after this point the connection will be disposed
	TCPBufferSize    int            `yaml:"tcp_buffer_size,omitempty" json:"tcp_buffer_size,omitempty"`     // buffer size
}

ConnectionConfig is a struct that stores configuration for connections

func NewDefaultIOConnectionConfig added in v0.15.0

func NewDefaultIOConnectionConfig() ConnectionConfig

NewDefaultIOConnectionConfig creates a default ConnectionConfig for IO

func NewDefaultMetadataConnectionConfig added in v0.15.0

func NewDefaultMetadataConnectionConfig() ConnectionConfig

NewDefaultMetadataConnectionConfig creates a default ConnectionConfig for metadata

type Entry added in v0.5.2

type Entry struct {
	ID                int64
	Type              EntryType
	Name              string
	Path              string
	Owner             string
	Size              int64
	DataType          string
	CreateTime        time.Time
	ModifyTime        time.Time
	CheckSumAlgorithm types.ChecksumAlgorithm
	CheckSum          []byte
}

Entry is a struct for filesystem entry

func (*Entry) IsDir added in v0.12.19

func (entry *Entry) IsDir() bool

IsDir returns if the entry is for directory

func (*Entry) ToString added in v0.5.2

func (entry *Entry) ToString() string

ToString stringifies the object

type EntryType added in v0.5.2

type EntryType string

EntryType defines types of Entry

const (
	// FileEntry is a Entry type for a file
	FileEntry EntryType = "file"
	// DirectoryEntry is a Entry type for a directory
	DirectoryEntry EntryType = "directory"
)

type FileHandle

type FileHandle struct {
	// contains filtered or unexported fields
}

FileHandle is a handle for a file opened

func (*FileHandle) Close

func (handle *FileHandle) Close() error

Close closes the file

func (*FileHandle) GetEntry added in v0.7.5

func (handle *FileHandle) GetEntry() *Entry

GetEntry returns Entry info

func (*FileHandle) GetID added in v0.7.5

func (handle *FileHandle) GetID() string

GetID returns ID

func (*FileHandle) GetIRODSFileHandle added in v0.7.5

func (handle *FileHandle) GetIRODSFileHandle() *types.IRODSFileHandle

GetIRODSFileHandle returns iRODS File Handle

func (*FileHandle) GetOffset

func (handle *FileHandle) GetOffset() int64

GetOffset returns current offset

func (*FileHandle) GetOpenMode added in v0.7.5

func (handle *FileHandle) GetOpenMode() types.FileOpenMode

GetOpenMode returns file open mode

func (*FileHandle) IsReadMode

func (handle *FileHandle) IsReadMode() bool

IsReadMode returns true if file is opened with read mode

func (*FileHandle) IsReadOnlyMode added in v0.7.6

func (handle *FileHandle) IsReadOnlyMode() bool

IsReadOnlyMode returns true if file is opened with read only mode

func (*FileHandle) IsWriteMode

func (handle *FileHandle) IsWriteMode() bool

IsWriteMode returns true if file is opened with write mode

func (*FileHandle) IsWriteOnlyMode added in v0.7.6

func (handle *FileHandle) IsWriteOnlyMode() bool

IsWriteOnlyMode returns true if file is opened with write only mode

func (*FileHandle) Lock added in v0.7.5

func (handle *FileHandle) Lock()

Lock locks the handle

func (*FileHandle) LockDataObject added in v0.12.8

func (handle *FileHandle) LockDataObject(wait bool) error

LockDataObject locks data object with write lock (exclusive)

func (*FileHandle) RLockDataObject added in v0.12.8

func (handle *FileHandle) RLockDataObject(wait bool) error

RLockDataObject locks data object with read lock

func (*FileHandle) Read

func (handle *FileHandle) Read(buffer []byte) (int, error)

Read reads the file, implements io.Reader.Read

func (*FileHandle) ReadAt added in v0.5.5

func (handle *FileHandle) ReadAt(buffer []byte, offset int64) (int, error)

ReadAt reads data from given offset

func (*FileHandle) Seek

func (handle *FileHandle) Seek(offset int64, whence int) (int64, error)

Seek moves file pointer

func (*FileHandle) ToString

func (handle *FileHandle) ToString() string

ToString stringifies the object

func (*FileHandle) Truncate added in v0.7.0

func (handle *FileHandle) Truncate(size int64) error

Truncate truncates the file

func (*FileHandle) Unlock added in v0.7.5

func (handle *FileHandle) Unlock()

Unlock unlocks the handle

func (*FileHandle) UnlockDataObject added in v0.12.8

func (handle *FileHandle) UnlockDataObject() error

UnlockDataObject unlocks data object

func (*FileHandle) Write

func (handle *FileHandle) Write(data []byte) (int, error)

Write writes the file

func (*FileHandle) WriteAt added in v0.5.5

func (handle *FileHandle) WriteAt(data []byte, offset int64) (int, error)

WriteAt writes the file to given offset

type FileHandleMap added in v0.7.5

type FileHandleMap struct {
	// contains filtered or unexported fields
}

FileHandleMap manages File Handles opened

func NewFileHandleMap added in v0.7.5

func NewFileHandleMap() *FileHandleMap

NewFileHandleMap creates a new FileHandleMap

func (*FileHandleMap) Add added in v0.7.5

func (fileHandleMap *FileHandleMap) Add(handle *FileHandle)

Add registers a file handle

func (*FileHandleMap) AddCloseEventHandler added in v0.9.3

func (fileHandleMap *FileHandleMap) AddCloseEventHandler(path string, handler FileHandleMapEventHandler) string

AddCloseEventHandler registers an event handler for file close

func (*FileHandleMap) Clear added in v0.7.5

func (fileHandleMap *FileHandleMap) Clear()

Clear clears all file handles registered

func (*FileHandleMap) Get added in v0.7.5

func (fileHandleMap *FileHandleMap) Get(id string) *FileHandle

Get returns a file handle registered using ID

func (*FileHandleMap) List added in v0.7.5

func (fileHandleMap *FileHandleMap) List() []*FileHandle

List lists all file handles registered

func (*FileHandleMap) ListByPath added in v0.7.5

func (fileHandleMap *FileHandleMap) ListByPath(path string) []*FileHandle

ListByPath returns file handles registered using path

func (*FileHandleMap) ListPathsInDir added in v0.7.5

func (fileHandleMap *FileHandleMap) ListPathsInDir(parentPath string) []string

ListPathsInDir returns paths of file handles under given parent path

func (*FileHandleMap) Pop added in v0.7.5

func (fileHandleMap *FileHandleMap) Pop(id string) *FileHandle

Pop pops a file handle registered using ID and returns the handle

func (*FileHandleMap) PopAll added in v0.7.5

func (fileHandleMap *FileHandleMap) PopAll() []*FileHandle

PopAll pops all file handles registered (clear) and returns

func (*FileHandleMap) PopByPath added in v0.7.5

func (fileHandleMap *FileHandleMap) PopByPath(path string) []*FileHandle

PopByPath pops file handles registered using path and returns the handles

func (*FileHandleMap) Remove added in v0.7.5

func (fileHandleMap *FileHandleMap) Remove(id string)

Remove deletes a file handle registered using ID

func (*FileHandleMap) RemoveCloseEventHandler added in v0.9.3

func (fileHandleMap *FileHandleMap) RemoveCloseEventHandler(handlerID string)

RemoveCloseEventHandler deregisters an event handler for file close

type FileHandleMapEventHandler added in v0.9.3

type FileHandleMapEventHandler func(path string, id string, empty bool)

FileHandleMapEventHandler is a event handler for FileHandleMap

type FileHandleMapEventHandlerWrap added in v0.9.3

type FileHandleMapEventHandlerWrap struct {
	// contains filtered or unexported fields
}

FileHandleMapEventHandlerWrap is wrapper event handler

type FileLock added in v0.7.0

type FileLock struct {
	// contains filtered or unexported fields
}

FileLock is a lock for a file

type FileLocks added in v0.7.0

type FileLocks struct {
	// contains filtered or unexported fields
}

FileLocks manages file locks

func NewFileLocks added in v0.7.0

func NewFileLocks() *FileLocks

NewFileLocks creates a new FileLocks

func (*FileLocks) Lock added in v0.7.0

func (mgr *FileLocks) Lock(path string)

Lock locks a file

func (*FileLocks) LockFilesForPrefix added in v0.7.0

func (mgr *FileLocks) LockFilesForPrefix(pathPrefix string) []string

LockFilesForPrefix locks all files starting with the given prefix, does not create a new lock, but increases reference

func (*FileLocks) RLock added in v0.7.0

func (mgr *FileLocks) RLock(path string)

RLock locks a file with read mode

func (*FileLocks) RUnlock added in v0.7.0

func (mgr *FileLocks) RUnlock(path string) error

RUnlock unlocks a file with read mode

func (*FileLocks) Unlock added in v0.7.0

func (mgr *FileLocks) Unlock(path string) error

Unlock unlocks a file

func (*FileLocks) UnlockFiles added in v0.7.0

func (mgr *FileLocks) UnlockFiles(paths []string) error

UnlockFiles unlocks multiple files

type FileSystem

type FileSystem struct {
	// contains filtered or unexported fields
}

FileSystem provides a file-system like interface

func NewFileSystem

func NewFileSystem(account *types.IRODSAccount, config *FileSystemConfig) (*FileSystem, error)

NewFileSystem creates a new FileSystem

func NewFileSystemWithDefault

func NewFileSystemWithDefault(account *types.IRODSAccount, applicationName string) (*FileSystem, error)

NewFileSystemWithDefault creates a new FileSystem with default configurations

func (*FileSystem) AddCacheEventHandler added in v0.10.6

func (fs *FileSystem) AddCacheEventHandler(handler FilesystemCacheEventHandler) string

AddCacheEventHandler adds cache event handler

func (*FileSystem) AddMetadata added in v0.4.0

func (fs *FileSystem) AddMetadata(irodsPath string, attName string, attValue string, attUnits string) error

AddMetadata adds a metadata for the path

func (*FileSystem) AddResourceMetadata added in v0.14.4

func (fs *FileSystem) AddResourceMetadata(resource string, attName, attValue, attUnits string) error

AddResourceMetadata adds a resource metadata

func (*FileSystem) AddTicketAllowedGroup added in v0.12.0

func (fs *FileSystem) AddTicketAllowedGroup(ticketName string, groupName string) error

AddTicketAllowedGroup adds a group to the allowed group names list of the given ticket

func (*FileSystem) AddTicketAllowedHost added in v0.12.0

func (fs *FileSystem) AddTicketAllowedHost(ticketName string, host string) error

AddTicketAllowedHost adds a host to the allowed hosts list of the given ticket

func (*FileSystem) AddTicketAllowedUser added in v0.12.0

func (fs *FileSystem) AddTicketAllowedUser(ticketName string, userName string) error

AddTicketAllowedUser adds a user to the allowed user names list of the given ticket

func (*FileSystem) AddUserMetadata added in v0.4.5

func (fs *FileSystem) AddUserMetadata(user string, attName, attValue, attUnits string) error

AddUserMetadata adds a user metadata

func (*FileSystem) ClearCache

func (fs *FileSystem) ClearCache()

ClearCache clears all file system caches

func (*FileSystem) ClearTicketExpirationTime added in v0.12.0

func (fs *FileSystem) ClearTicketExpirationTime(ticketName string) error

ClearTicketExpirationTime clears the expiration time of the given ticket

func (*FileSystem) ClearTicketUseLimit added in v0.12.0

func (fs *FileSystem) ClearTicketUseLimit(ticketName string) error

ClearTicketUseLimit clears the use limit of the given ticket

func (*FileSystem) ClearTicketWriteByteLimit added in v0.12.0

func (fs *FileSystem) ClearTicketWriteByteLimit(ticketName string) error

ClearTicketWriteByteLimit clears the write byte limit of the given ticket

func (*FileSystem) ClearTicketWriteFileLimit added in v0.12.0

func (fs *FileSystem) ClearTicketWriteFileLimit(ticketName string) error

ClearTicketWriteFileLimit clears the write file limit of the given ticket

func (*FileSystem) ConnectionTotal added in v0.9.7

func (fs *FileSystem) ConnectionTotal() int

ConnectionTotal counts current established connections

func (*FileSystem) CopyFile

func (fs *FileSystem) CopyFile(srcPath string, destPath string, force bool) error

CopyFile copies a file

func (*FileSystem) CopyFileToFile

func (fs *FileSystem) CopyFileToFile(srcPath string, destPath string, force bool) error

CopyFileToFile copies a file

func (*FileSystem) CreateFile

func (fs *FileSystem) CreateFile(path string, resource string, mode string) (*FileHandle, error)

CreateFile opens a new file for write

func (*FileSystem) CreateTicket added in v0.12.0

func (fs *FileSystem) CreateTicket(ticketName string, ticketType types.TicketType, path string) error

CreateTicket creates a new ticket

func (*FileSystem) DeleteMetadata added in v0.4.0

func (fs *FileSystem) DeleteMetadata(irodsPath string, avuid int64) error

DeleteMetadata deletes a metadata for the path

func (*FileSystem) DeleteMetadataByName added in v0.14.4

func (fs *FileSystem) DeleteMetadataByName(irodsPath string, attName string) error

DeleteMetadataByName deletes a metadata for the path by name

func (*FileSystem) DeleteResourceMetadata added in v0.14.4

func (fs *FileSystem) DeleteResourceMetadata(resource string, avuid int64) error

DeleteResourceMetadata deletes a resource metadata

func (*FileSystem) DeleteResourceMetadataByName added in v0.14.4

func (fs *FileSystem) DeleteResourceMetadataByName(resource string, attName string) error

DeleteResourceMetadataByName deletes a resource metadata by name

func (*FileSystem) DeleteTicket added in v0.12.0

func (fs *FileSystem) DeleteTicket(ticketName string) error

DeleteTicket deletes the given ticket

func (*FileSystem) DeleteUserMetadata added in v0.4.5

func (fs *FileSystem) DeleteUserMetadata(user string, avuid int64) error

DeleteUserMetadata deletes a user metadata

func (*FileSystem) DeleteUserMetadataByName added in v0.14.4

func (fs *FileSystem) DeleteUserMetadataByName(user string, attName string) error

DeleteUserMetadataByName deletes a user metadata by name

func (*FileSystem) DownloadFile

func (fs *FileSystem) DownloadFile(irodsPath string, resource string, localPath string, verifyChecksum bool, callback common.TrackerCallBack) (*FileTransferResult, error)

DownloadFile downloads a file to local

func (*FileSystem) DownloadFileParallel added in v0.5.2

func (fs *FileSystem) DownloadFileParallel(irodsPath string, resource string, localPath string, taskNum int, verifyChecksum bool, callback common.TrackerCallBack) (*FileTransferResult, error)

DownloadFileParallel downloads a file to local in parallel

func (*FileSystem) DownloadFileParallelResumable added in v0.12.20

func (fs *FileSystem) DownloadFileParallelResumable(irodsPath string, resource string, localPath string, taskNum int, verifyChecksum bool, callback common.TrackerCallBack) (*FileTransferResult, error)

DownloadFileParallelResumable downloads a file to local in parallel with support of transfer resume

func (*FileSystem) DownloadFileRedirectToResource added in v0.14.0

func (fs *FileSystem) DownloadFileRedirectToResource(irodsPath string, resource string, localPath string, taskNum int, verifyChecksum bool, callback common.TrackerCallBack) (*FileTransferResult, error)

DownloadFileRedirectToResource downloads a file from resource to local in parallel

func (*FileSystem) DownloadFileResumable added in v0.12.20

func (fs *FileSystem) DownloadFileResumable(irodsPath string, resource string, localPath string, verifyChecksum bool, callback common.TrackerCallBack) (*FileTransferResult, error)

DownloadFileResumable downloads a file to local with support of transfer resume

func (*FileSystem) DownloadFileToBuffer added in v0.12.8

func (fs *FileSystem) DownloadFileToBuffer(irodsPath string, resource string, buffer *bytes.Buffer, verifyChecksum bool, callback common.TrackerCallBack) (*FileTransferResult, error)

DownloadFileToBuffer downloads a file to buffer

func (*FileSystem) Exists

func (fs *FileSystem) Exists(path string) bool

Exists checks file/directory existence

func (*FileSystem) ExistsDir

func (fs *FileSystem) ExistsDir(path string) bool

ExistsDir checks directory existence

func (*FileSystem) ExistsFile

func (fs *FileSystem) ExistsFile(path string) bool

ExistsFile checks file existence

func (*FileSystem) ExtractStructFile added in v0.9.4

func (fs *FileSystem) ExtractStructFile(path string, targetCollection string, resource string, dataType types.DataType, force bool, bulkReg bool) error

ExtractStructFile extracts a struct file

func (*FileSystem) GetDirACLInheritance added in v0.14.6

func (fs *FileSystem) GetDirACLInheritance(path string) (*types.IRODSAccessInheritance, error)

GetDirACLInheritance returns ACL inheritance of a directory

func (*FileSystem) GetID added in v0.9.0

func (fs *FileSystem) GetID() string

GetID returns file system instance ID

func (*FileSystem) GetIOConnection added in v0.11.0

func (fs *FileSystem) GetIOConnection() (*connection.IRODSConnection, error)

GetIOConnection returns irods connection for IO

func (*FileSystem) GetMetadataConnection added in v0.11.0

func (fs *FileSystem) GetMetadataConnection() (*connection.IRODSConnection, error)

GetMetadataConnection returns irods connection for metadata operations

func (*FileSystem) GetMetrics added in v0.9.7

func (fs *FileSystem) GetMetrics() *metrics.IRODSMetrics

GetMetrics returns metrics

func (*FileSystem) GetServerVersion added in v0.10.9

func (fs *FileSystem) GetServerVersion() (*types.IRODSVersion, error)

GetServerVersion returns server version info

func (*FileSystem) GetTicket added in v0.12.1

func (fs *FileSystem) GetTicket(ticketName string) (*types.IRODSTicket, error)

GetTicket gets ticket information

func (*FileSystem) GetTicketForAnonymousAccess added in v0.7.0

func (fs *FileSystem) GetTicketForAnonymousAccess(ticketName string) (*types.IRODSTicketForAnonymousAccess, error)

GetTicketForAnonymousAccess gets ticket information for anonymous access

func (*FileSystem) GetTicketRestrictions added in v0.12.0

func (fs *FileSystem) GetTicketRestrictions(ticketID int64) (*IRODSTicketRestrictions, error)

GetTicketRestrictions gets all restriction info. for the given ticket

func (*FileSystem) List

func (fs *FileSystem) List(path string) ([]*Entry, error)

List lists all file system entries under the given path

func (*FileSystem) ListACLs added in v0.3.0

func (fs *FileSystem) ListACLs(path string) ([]*types.IRODSAccess, error)

ListACLs returns ACLs

func (*FileSystem) ListACLsForEntries added in v0.9.4

func (fs *FileSystem) ListACLsForEntries(path string) ([]*types.IRODSAccess, error)

ListACLsForEntries returns ACLs for entries in a collection

func (*FileSystem) ListACLsWithGroupUsers added in v0.3.0

func (fs *FileSystem) ListACLsWithGroupUsers(path string) ([]*types.IRODSAccess, error)

ListACLsWithGroupUsers returns ACLs

func (*FileSystem) ListAllProcesses added in v0.9.7

func (fs *FileSystem) ListAllProcesses() ([]*types.IRODSProcess, error)

ListAllProcesses lists all processes

func (*FileSystem) ListDirACLs added in v0.3.0

func (fs *FileSystem) ListDirACLs(path string) ([]*types.IRODSAccess, error)

ListDirACLs returns ACLs of a directory

func (*FileSystem) ListDirACLsWithGroupUsers added in v0.3.0

func (fs *FileSystem) ListDirACLsWithGroupUsers(path string) ([]*types.IRODSAccess, error)

ListDirACLsWithGroupUsers returns ACLs of a directory CAUTION: this can fail if a group contains a lot of users

func (*FileSystem) ListFileACLs added in v0.3.0

func (fs *FileSystem) ListFileACLs(path string) ([]*types.IRODSAccess, error)

ListFileACLs returns ACLs of a file

func (*FileSystem) ListFileACLsWithGroupUsers added in v0.3.0

func (fs *FileSystem) ListFileACLsWithGroupUsers(path string) ([]*types.IRODSAccess, error)

ListFileACLsWithGroupUsers returns ACLs of a file

func (*FileSystem) ListGroupUsers added in v0.3.0

func (fs *FileSystem) ListGroupUsers(group string) ([]*types.IRODSUser, error)

ListGroupUsers lists all users in a group

func (*FileSystem) ListGroups added in v0.4.5

func (fs *FileSystem) ListGroups() ([]*types.IRODSUser, error)

ListGroups lists all groups

func (*FileSystem) ListMetadata added in v0.4.0

func (fs *FileSystem) ListMetadata(path string) ([]*types.IRODSMeta, error)

ListMetadata lists metadata for the given path

func (*FileSystem) ListProcesses added in v0.9.7

func (fs *FileSystem) ListProcesses(address string, zone string) ([]*types.IRODSProcess, error)

ListProcesses lists all processes

func (*FileSystem) ListResourceMetadata added in v0.14.4

func (fs *FileSystem) ListResourceMetadata(resource string) ([]*types.IRODSMeta, error)

ListResourceMetadata lists all resource metadata

func (*FileSystem) ListTicketHostRestrictions added in v0.12.0

func (fs *FileSystem) ListTicketHostRestrictions(ticketID int64) ([]string, error)

ListTicketHostRestrictions lists all host restrictions for the given ticket

func (*FileSystem) ListTicketUserGroupRestrictions added in v0.12.0

func (fs *FileSystem) ListTicketUserGroupRestrictions(ticketID int64) ([]string, error)

ListTicketUserGroupRestrictions lists all group name restrictions for the given ticket

func (*FileSystem) ListTicketUserNameRestrictions added in v0.12.0

func (fs *FileSystem) ListTicketUserNameRestrictions(ticketID int64) ([]string, error)

ListTicketUserNameRestrictions lists all user name restrictions for the given ticket

func (*FileSystem) ListTickets added in v0.12.0

func (fs *FileSystem) ListTickets() ([]*types.IRODSTicket, error)

ListTickets lists all available ticket information

func (*FileSystem) ListTicketsBasic added in v0.12.0

func (fs *FileSystem) ListTicketsBasic() ([]*types.IRODSTicket, error)

ListTicketsBasic lists all available basic ticket information

func (*FileSystem) ListUserGroups added in v0.5.9

func (fs *FileSystem) ListUserGroups(user string) ([]*types.IRODSUser, error)

ListUserGroups lists all groups that a user belongs to

func (*FileSystem) ListUserMetadata added in v0.4.5

func (fs *FileSystem) ListUserMetadata(user string) ([]*types.IRODSMeta, error)

ListUserMetadata lists all user metadata

func (*FileSystem) ListUsers added in v0.4.5

func (fs *FileSystem) ListUsers() ([]*types.IRODSUser, error)

ListUsers lists all users

func (*FileSystem) MakeDir

func (fs *FileSystem) MakeDir(path string, recurse bool) error

MakeDir creates a directory

func (*FileSystem) ModifyTicketExpirationTime added in v0.12.0

func (fs *FileSystem) ModifyTicketExpirationTime(ticketName string, expirationTime time.Time) error

ModifyTicketExpirationTime modifies the expiration time of the given ticket

func (*FileSystem) ModifyTicketUseLimit added in v0.12.0

func (fs *FileSystem) ModifyTicketUseLimit(ticketName string, uses int64) error

ModifyTicketUseLimit modifies the use limit of the given ticket

func (*FileSystem) ModifyTicketWriteByteLimit added in v0.12.0

func (fs *FileSystem) ModifyTicketWriteByteLimit(ticketName string, bytes int64) error

ModifyTicketWriteByteLimit modifies the write byte limit of the given ticket

func (*FileSystem) ModifyTicketWriteFileLimit added in v0.12.0

func (fs *FileSystem) ModifyTicketWriteFileLimit(ticketName string, count int64) error

ModifyTicketWriteFileLimit modifies the write file limit of the given ticket

func (*FileSystem) OpenFile

func (fs *FileSystem) OpenFile(path string, resource string, mode string) (*FileHandle, error)

OpenFile opens an existing file for read/write

func (*FileSystem) Release

func (fs *FileSystem) Release()

Release releases all resources

func (*FileSystem) RemoveCacheEventHandler added in v0.10.6

func (fs *FileSystem) RemoveCacheEventHandler(handlerID string)

RemoveCacheEventHandler removes cache event handler

func (*FileSystem) RemoveDir

func (fs *FileSystem) RemoveDir(path string, recurse bool, force bool) error

RemoveDir deletes a directory

func (*FileSystem) RemoveFile

func (fs *FileSystem) RemoveFile(path string, force bool) error

RemoveFile deletes a file

func (*FileSystem) RemoveTicketAllowedGroup added in v0.12.0

func (fs *FileSystem) RemoveTicketAllowedGroup(ticketName string, groupName string) error

RemoveTicketAllowedGroup removes the group from the allowed group names list of the given ticket

func (*FileSystem) RemoveTicketAllowedHost added in v0.12.0

func (fs *FileSystem) RemoveTicketAllowedHost(ticketName string, host string) error

RemoveTicketAllowedHost removes the host from the allowed hosts list of the given ticket

func (*FileSystem) RemoveTicketAllowedUser added in v0.12.0

func (fs *FileSystem) RemoveTicketAllowedUser(ticketName string, userName string) error

RemoveTicketAllowedUser removes the user from the allowed user names list of the given ticket

func (*FileSystem) RenameDir

func (fs *FileSystem) RenameDir(srcPath string, destPath string) error

RenameDir renames a dir

func (*FileSystem) RenameDirToDir

func (fs *FileSystem) RenameDirToDir(srcPath string, destPath string) error

RenameDirToDir renames a dir

func (*FileSystem) RenameFile

func (fs *FileSystem) RenameFile(srcPath string, destPath string) error

RenameFile renames a file

func (*FileSystem) RenameFileToFile

func (fs *FileSystem) RenameFileToFile(srcPath string, destPath string) error

RenameFileToFile renames a file

func (*FileSystem) ReplicateFile

func (fs *FileSystem) ReplicateFile(path string, resource string, update bool) error

ReplicateFile replicates a file

func (*FileSystem) ReturnIOConnection added in v0.11.0

func (fs *FileSystem) ReturnIOConnection(conn *connection.IRODSConnection) error

ReturnIOConnection returns irods connection for IO back to session

func (*FileSystem) ReturnMetadataConnection added in v0.11.0

func (fs *FileSystem) ReturnMetadataConnection(conn *connection.IRODSConnection) error

ReturnMetadataConnection returns irods connection for metadata operations back to session

func (*FileSystem) SearchByMeta added in v0.4.3

func (fs *FileSystem) SearchByMeta(metaname string, metavalue string) ([]*Entry, error)

SearchByMeta searches all file system entries with given metadata

func (*FileSystem) Stat

func (fs *FileSystem) Stat(p string) (*Entry, error)

Stat returns file status

func (*FileSystem) StatDir

func (fs *FileSystem) StatDir(path string) (*Entry, error)

StatDir returns status of a directory

func (*FileSystem) StatFile

func (fs *FileSystem) StatFile(path string) (*Entry, error)

StatFile returns status of a file

func (*FileSystem) SupportParallelUpload added in v0.10.9

func (fs *FileSystem) SupportParallelUpload() bool

SupportParallelUpload returns if the server supports parallel upload

func (*FileSystem) Touch added in v0.15.0

func (fs *FileSystem) Touch(irodsPath string, resource string, noCreate bool) error

Touch creates an empty file or update timestamp

func (*FileSystem) TruncateFile

func (fs *FileSystem) TruncateFile(path string, size int64) error

TruncateFile truncates a file

func (*FileSystem) UploadFile

func (fs *FileSystem) UploadFile(localPath string, irodsPath string, resource string, replicate bool, checksum bool, verifyChecksum bool, callback common.TrackerCallBack) (*FileTransferResult, error)

UploadFile uploads a local file to irods

func (*FileSystem) UploadFileFromBuffer added in v0.12.8

func (fs *FileSystem) UploadFileFromBuffer(buffer *bytes.Buffer, irodsPath string, resource string, replicate bool, checksum bool, verifyChecksum bool, callback common.TrackerCallBack) (*FileTransferResult, error)

UploadFileFromBuffer uploads buffer data to irods

func (*FileSystem) UploadFileParallel added in v0.5.2

func (fs *FileSystem) UploadFileParallel(localPath string, irodsPath string, resource string, taskNum int, replicate bool, checksum bool, verifyChecksum bool, callback common.TrackerCallBack) (*FileTransferResult, error)

UploadFileParallel uploads a local file to irods in parallel

func (*FileSystem) UploadFileParallelRedirectToResource added in v0.14.0

func (fs *FileSystem) UploadFileParallelRedirectToResource(localPath string, irodsPath string, resource string, taskNum int, replicate bool, checksum bool, verifyChecksum bool, callback common.TrackerCallBack) (*FileTransferResult, error)

UploadFileParallelRedirectToResource uploads a file from local to resource server in parallel

type FileSystemCache

type FileSystemCache struct {
	// contains filtered or unexported fields
}

FileSystemCache manages filesystem caches

func NewFileSystemCache

func NewFileSystemCache(config *CacheConfig) *FileSystemCache

NewFileSystemCache creates a new FileSystemCache

func (*FileSystemCache) AddACLsCache added in v0.9.4

func (cache *FileSystemCache) AddACLsCache(path string, accesses []*types.IRODSAccess)

AddACLsCache adds a ACLs cache

func (*FileSystemCache) AddACLsCacheMulti added in v0.9.4

func (cache *FileSystemCache) AddACLsCacheMulti(accesses []*types.IRODSAccess)

AddACLsCacheMulti adds multiple ACLs caches

func (*FileSystemCache) AddDirCache

func (cache *FileSystemCache) AddDirCache(path string, entries []string)

AddDirCache adds a dir cache

func (*FileSystemCache) AddEntryCache

func (cache *FileSystemCache) AddEntryCache(entry *Entry)

AddEntryCache adds an entry cache

func (*FileSystemCache) AddGroupUsersCache added in v0.3.0

func (cache *FileSystemCache) AddGroupUsersCache(group string, users []*types.IRODSUser)

AddGroupUsersCache adds a group user (users in a group) cache

func (*FileSystemCache) AddGroupsCache added in v0.4.5

func (cache *FileSystemCache) AddGroupsCache(groups []*types.IRODSUser)

AddGroupsCache adds a groups cache (cache of a list of all groups)

func (*FileSystemCache) AddMetadataCache added in v0.4.0

func (cache *FileSystemCache) AddMetadataCache(path string, metas []*types.IRODSMeta)

AddMetadataCache adds a metadata cache

func (*FileSystemCache) AddNegativeEntryCache added in v0.7.0

func (cache *FileSystemCache) AddNegativeEntryCache(path string)

AddNegativeEntryCache adds a negative entry cache

func (*FileSystemCache) AddUserGroupsCache added in v0.5.9

func (cache *FileSystemCache) AddUserGroupsCache(user string, groups []*types.IRODSUser)

AddUserGroupsCache adds a user's groups (groups that a user belongs to) cache

func (*FileSystemCache) AddUsersCache added in v0.4.5

func (cache *FileSystemCache) AddUsersCache(users []*types.IRODSUser)

AddUsersCache adds a users cache (cache of a list of all users)

func (*FileSystemCache) ClearACLsCache added in v0.9.4

func (cache *FileSystemCache) ClearACLsCache()

ClearACLsCache clears all ACLs caches

func (*FileSystemCache) ClearDirCache

func (cache *FileSystemCache) ClearDirCache()

ClearDirCache clears all dir caches

func (*FileSystemCache) ClearEntryCache

func (cache *FileSystemCache) ClearEntryCache()

ClearEntryCache clears all entry caches

func (*FileSystemCache) ClearMetadataCache added in v0.4.0

func (cache *FileSystemCache) ClearMetadataCache()

ClearMetadataCache clears all metadata caches

func (*FileSystemCache) ClearNegativeEntryCache added in v0.7.0

func (cache *FileSystemCache) ClearNegativeEntryCache()

ClearNegativeEntryCache clears all negative entry caches

func (*FileSystemCache) GetACLsCache added in v0.9.4

func (cache *FileSystemCache) GetACLsCache(path string) []*types.IRODSAccess

GetACLsCache retrives a ACLs cache

func (*FileSystemCache) GetDirCache

func (cache *FileSystemCache) GetDirCache(path string) []string

GetDirCache retrives a dir cache

func (*FileSystemCache) GetEntryCache

func (cache *FileSystemCache) GetEntryCache(path string) *Entry

GetEntryCache retrieves an entry cache

func (*FileSystemCache) GetGroupUsersCache added in v0.3.0

func (cache *FileSystemCache) GetGroupUsersCache(group string) []*types.IRODSUser

GetGroupUsersCache retrives a group user (users in a group) cache

func (*FileSystemCache) GetGroupsCache added in v0.4.5

func (cache *FileSystemCache) GetGroupsCache() []*types.IRODSUser

GetGroupsCache retrives a groups cache (cache of a list of all groups)

func (*FileSystemCache) GetMetadataCache added in v0.4.0

func (cache *FileSystemCache) GetMetadataCache(path string) []*types.IRODSMeta

GetMetadataCache retrieves a metadata cache

func (*FileSystemCache) GetUserGroupsCache added in v0.5.9

func (cache *FileSystemCache) GetUserGroupsCache(user string) []*types.IRODSUser

GetUserGroupsCache retrives a user's groups (groups that a user belongs to) cache

func (*FileSystemCache) GetUsersCache added in v0.4.5

func (cache *FileSystemCache) GetUsersCache() []*types.IRODSUser

GetUsersCache retrives a users cache (cache of a list of all users)

func (*FileSystemCache) HasNegativeEntryCache added in v0.7.0

func (cache *FileSystemCache) HasNegativeEntryCache(path string) bool

HasNegativeEntryCache checks the existence of a negative entry cache

func (*FileSystemCache) RemoveACLsCache added in v0.9.4

func (cache *FileSystemCache) RemoveACLsCache(path string)

RemoveACLsCache removes a ACLs cache

func (*FileSystemCache) RemoveAllNegativeEntryCacheForPath added in v0.7.0

func (cache *FileSystemCache) RemoveAllNegativeEntryCacheForPath(path string)

RemoveAllNegativeEntryCacheForPath removes all negative entry caches

func (*FileSystemCache) RemoveDirCache

func (cache *FileSystemCache) RemoveDirCache(path string)

RemoveDirCache removes a dir cache

func (*FileSystemCache) RemoveEntryCache

func (cache *FileSystemCache) RemoveEntryCache(path string)

RemoveEntryCache removes an entry cache

func (*FileSystemCache) RemoveGroupUsersCache added in v0.3.0

func (cache *FileSystemCache) RemoveGroupUsersCache(group string)

RemoveGroupUsersCache removes a group user (users in a group) cache

func (*FileSystemCache) RemoveGroupsCache added in v0.4.5

func (cache *FileSystemCache) RemoveGroupsCache()

RemoveGroupsCache removes a groups cache (cache of a list of all groups)

func (*FileSystemCache) RemoveMetadataCache added in v0.4.0

func (cache *FileSystemCache) RemoveMetadataCache(path string)

RemoveMetadataCache removes a metadata cache

func (*FileSystemCache) RemoveNegativeEntryCache added in v0.7.0

func (cache *FileSystemCache) RemoveNegativeEntryCache(path string)

RemoveNegativeEntryCache removes a negative entry cache

func (*FileSystemCache) RemoveParentDirCache added in v0.7.0

func (cache *FileSystemCache) RemoveParentDirCache(path string)

RemoveParentDirCache removes an entry cache for the parent path of the given path

func (*FileSystemCache) RemoveUserGroupsCache added in v0.5.9

func (cache *FileSystemCache) RemoveUserGroupsCache(user string)

RemoveUserGroupsCache removes a user's groups (groups that a user belongs to) cache

func (*FileSystemCache) RemoveUsersCache added in v0.4.5

func (cache *FileSystemCache) RemoveUsersCache()

RemoveUsersCache removes a users cache (cache of a list of all users)

type FileSystemCachePropagation added in v0.9.0

type FileSystemCachePropagation struct {
	// contains filtered or unexported fields
}

FileSystemCachePropagation manages filesystem cache propagation

func NewFileSystemCachePropagation added in v0.9.0

func NewFileSystemCachePropagation(fs *FileSystem) *FileSystemCachePropagation

NewFileSystemCachePropagation creates a new FileSystemCachePropagation

func (*FileSystemCachePropagation) Propagate added in v0.9.0

func (propagation *FileSystemCachePropagation) Propagate(path string, eventType FilesystemCacheEventType)

Propagate propagates fs cache update event

func (*FileSystemCachePropagation) PropagateDirCreate added in v0.9.0

func (propagation *FileSystemCachePropagation) PropagateDirCreate(path string)

PropagateDirCreate propagates fs cache update event for dir create

func (*FileSystemCachePropagation) PropagateDirExtract added in v0.13.1

func (propagation *FileSystemCachePropagation) PropagateDirExtract(path string)

PropagateDirExtract propagates fs cache update event for dir extract

func (*FileSystemCachePropagation) PropagateDirRemove added in v0.9.0

func (propagation *FileSystemCachePropagation) PropagateDirRemove(path string)

PropagateDirRemove propagates fs cache update event for dir remove

func (*FileSystemCachePropagation) PropagateFileCreate added in v0.9.0

func (propagation *FileSystemCachePropagation) PropagateFileCreate(path string)

PropagateFileCreate propagates fs cache update event for file create

func (*FileSystemCachePropagation) PropagateFileRemove added in v0.9.0

func (propagation *FileSystemCachePropagation) PropagateFileRemove(path string)

PropagateFileRemove propagates fs cache update event for file remove

func (*FileSystemCachePropagation) PropagateFileUpdate added in v0.9.0

func (propagation *FileSystemCachePropagation) PropagateFileUpdate(path string)

PropagateFileUpdate propagates fs cache update event for file update

func (*FileSystemCachePropagation) Release added in v0.9.0

func (propagation *FileSystemCachePropagation) Release()

Release releases resources

type FileSystemConfig

type FileSystemConfig struct {
	ApplicationName string `yaml:"application_name,omitempty" json:"application_name,omitempty"`

	MetadataConnection ConnectionConfig `yaml:"metadata_connection,omitempty" json:"metadata_connection,omitempty"`
	IOConnection       ConnectionConfig `yaml:"io_connection,omitempty" json:"io_connection,omitempty"`

	Cache CacheConfig `yaml:"cache,omitempty" json:"cache,omitempty"`

	AddressResolver session.AddressResolver
}

FileSystemConfig is a struct for file system configuration

func NewFileSystemConfig

func NewFileSystemConfig(applicationName string) *FileSystemConfig

NewFileSystemConfig create a FileSystemConfig with a default settings

func (*FileSystemConfig) ToIOSessionConfig added in v0.15.0

func (config *FileSystemConfig) ToIOSessionConfig() *session.IRODSSessionConfig

ToIOSessionConfig creates a IRODSSessionConfig from FileSystemConfig

func (*FileSystemConfig) ToMetadataSessionConfig added in v0.15.0

func (config *FileSystemConfig) ToMetadataSessionConfig() *session.IRODSSessionConfig

ToMetadataSessionConfig creates a IRODSSessionConfig from FileSystemConfig

type FileTransferResult added in v0.14.12

type FileTransferResult struct {
	IRODSCheckSumAlgorithm types.ChecksumAlgorithm
	IRODSPath              string
	IRODSCheckSum          []byte
	IRODSSize              int64
	LocalCheckSumAlgorithm types.ChecksumAlgorithm
	LocalPath              string
	LocalCheckSum          []byte
	LocalSize              int64
	StartTime              time.Time
	EndTime                time.Time
}

FileTransferResult a file transfer result

type FilesystemCacheEventHandler added in v0.10.6

type FilesystemCacheEventHandler func(path string, eventType FilesystemCacheEventType)

FilesystemCacheEventHandler is a cache event handler type

type FilesystemCacheEventHandlerMap added in v0.10.6

type FilesystemCacheEventHandlerMap struct {
	// contains filtered or unexported fields
}

FilesystemCacheEventHandlerMap manages FilesystemCacheEventHandler

func NewFilesystemCacheEventHandlerMap added in v0.10.6

func NewFilesystemCacheEventHandlerMap() *FilesystemCacheEventHandlerMap

NewFilesystemCacheEventHandlerMap creates a new FilesystemCacheEventHandlerMap

func (*FilesystemCacheEventHandlerMap) AddEventHandler added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) AddEventHandler(handler FilesystemCacheEventHandler) string

AddEventHandler adds cache eventh handler

func (*FilesystemCacheEventHandlerMap) GetEventHandler added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) GetEventHandler(handlerID string) FilesystemCacheEventHandler

GetEventHandler returns event handler for the id

func (*FilesystemCacheEventHandlerMap) GetEventHandlerIDs added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) GetEventHandlerIDs() []string

GetEventHandlerIDs returns all event handler ids

func (*FilesystemCacheEventHandlerMap) GetEventHandlers added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) GetEventHandlers() []FilesystemCacheEventHandler

GetEventHandlers returns all event handlers

func (*FilesystemCacheEventHandlerMap) Release added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) Release()

Release releases resources

func (*FilesystemCacheEventHandlerMap) RemoveEventHandler added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) RemoveEventHandler(handlerID string)

RemoveEventHandler removes cache eventh handler

func (*FilesystemCacheEventHandlerMap) SendDirCreateEvent added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) SendDirCreateEvent(path string)

SendDirCreateEvent sends dir create event

func (*FilesystemCacheEventHandlerMap) SendDirExtractEvent added in v0.13.1

func (handlerMap *FilesystemCacheEventHandlerMap) SendDirExtractEvent(path string)

SendDirExtractEvent sends dir extract event

func (*FilesystemCacheEventHandlerMap) SendDirRemoveEvent added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) SendDirRemoveEvent(path string)

SendDirRemoveEvent sends dir remove event

func (*FilesystemCacheEventHandlerMap) SendEvent added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) SendEvent(path string, eventType FilesystemCacheEventType)

SendEvent sends event

func (*FilesystemCacheEventHandlerMap) SendFileCreateEvent added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) SendFileCreateEvent(path string)

SendFileCreateEvent sends file create event

func (*FilesystemCacheEventHandlerMap) SendFileRemoveEvent added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) SendFileRemoveEvent(path string)

SendFileRemoveEvent sends file remove event

func (*FilesystemCacheEventHandlerMap) SendFileUpdateEvent added in v0.10.6

func (handlerMap *FilesystemCacheEventHandlerMap) SendFileUpdateEvent(path string)

SendFileUpdateEvent sends file update event

type FilesystemCacheEventType added in v0.10.6

type FilesystemCacheEventType string

FilesystemCacheEventType defines cache

const (
	// FilesystemCacheFileCreateEvent is an event type for file creation
	FilesystemCacheFileCreateEvent FilesystemCacheEventType = "file create"
	// FilesystemCacheFileRemoveEvent is an event type for file removal
	FilesystemCacheFileRemoveEvent FilesystemCacheEventType = "file remove"
	// FilesystemCacheFileUpdateEvent is an event type for file update
	FilesystemCacheFileUpdateEvent FilesystemCacheEventType = "file update"
	// FilesystemCacheDirCreateEvent is an event type for dir creation
	FilesystemCacheDirCreateEvent FilesystemCacheEventType = "dir create"
	// FilesystemCacheDirRemoveEvent is an event type for dir removal
	FilesystemCacheDirRemoveEvent FilesystemCacheEventType = "dir remove"
	// FilesystemCacheDirExtractEvent is an event type for dir extract
	FilesystemCacheDirExtractEvent FilesystemCacheEventType = "dir extract"
)

type IRODSTicketRestrictions added in v0.12.0

type IRODSTicketRestrictions struct {
	// AllowedHosts is a list of allowed hosts
	AllowedHosts []string
	// AllowedUserName is a list of allowed user names
	AllowedUserNames []string
	// AllowedGroupNames is a list of allowed group names
	AllowedGroupNames []string
}

IRODSTicketRestrictions contains irods ticket restriction information

func (*IRODSTicketRestrictions) ToString added in v0.12.0

func (ticket *IRODSTicketRestrictions) ToString() string

ToString stringifies the object

type MetadataCacheTimeoutSetting added in v0.6.1

type MetadataCacheTimeoutSetting struct {
	Path    string         `yaml:"path" json:"path"`
	Timeout types.Duration `yaml:"timeout" json:"timeout"`
	Inherit bool           `yaml:"inherit,omitempty" json:"inherit,omitempty"`
}

MetadataCacheTimeoutSetting defines cache timeout for path

Jump to

Keyboard shortcuts

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