| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | 
package filesystem // import "imuslab.com/arozos/mod/filesystem"FUNCTIONSfunc BufferedLargeFileCopy(src string, dst string, BUFFERSIZE int64) error    Use for copying large file using buffering method. Allowing copying large    file with little RAMfunc CheckMounted(mountpoint string) boolfunc DecodeURI(inputPath string) stringfunc FileCopy(src string, dest string, mode string) errorfunc FileMove(src string, dest string, mode string, fastMove bool) errorfunc GetFileDisplaySize(filesize int64, rounding int) stringfunc GetFileSize(filename string) int64func GetMime(filepath string) (string, string, error)func GetModTime(filepath string) (int64, error)func IsDir(path string) boolfunc MatchingFileSystem(fsa *FileSystemHandler, fsb *FileSystemHandler) bool    Check if the two file system are identical.func MountDevice(mountpt string, mountdev string, filesystem string) errorfunc ViewZipFile(filepath string) ([]string, error)func ZipFile(filelist []string, outputfile string, includeTopLevelFolder bool) errorTYPEStype FileData struct {	Filename    string	Filepath    string	Realpath    string	IsDir       bool	Filesize    float64	Displaysize string}type FileProperties struct {	VirtualPath    string	StoragePath    string	Basename       string	VirtualDirname string	StorageDirname string	Ext            string	MimeType       string	Filesize       int64	Permission     string	LastModTime    string	LastModUnix    int64	IsDirectory    bool}type FileSystemHandler struct {	Name               string	UUID               string	Path               string	Hierarchy          string	ReadOnly           bool	InitiationTime     int64	FilesystemDatabase *db.Database	Filesystem         string}    System Handler for returingfunc NewFileSystemHandler(option FileSystemOption) (*FileSystemHandler, error)    Create a new file system handler with the given configfunc NewFileSystemHandlersFromJSON(jsonContent []byte) ([]*FileSystemHandler, error)    Create a list of file system handler from the given json contentfunc (fsh *FileSystemHandler) Close()func (fsh *FileSystemHandler) CreateFileRecord(realpath string, owner string) error    Create a file ownership recordfunc (fsh *FileSystemHandler) DeleteFileRecord(realpath string) error    Delete a file ownership recordfunc (fsh *FileSystemHandler) GetFileRecord(realpath string) (string, error)    Read the owner of a filetype FileSystemOption struct {	Name       string `json:"name"`                 //Display name of this device	Uuid       string `json:"uuid"`                 //UUID of this device, e.g. S1	Path       string `json:"path"`                 //Path for the storage root	Access     string `json:"access,omitempty"`     //Access right, allow {readonly, everyone, user:{username}, group:{groupname}}	Hierarchy  string `json:"hierarchy"`            //Folder hierarchy, allow {public, user}	Automount  bool   `json:"automount"`            //Automount this device if exists	Filesystem string `json:"filesystem,omitempty"` //Support {"ext4","ext2", "ext3", "fat", "vfat", "ntfs"}	Mountdev   string `json:"mountdev,omitempty"`   //Device file (e.g. /dev/sda1)	Mountpt    string `json:"mountpt,omitempty"`    //Device mount point (e.g. /media/storage1)	Username   string `json:"username,omitempty"`   //Username if the storage require auth	Password   string `json:"password,omitempty"`   //Password if the storage require auth}    FileSystem configuration. Append more lines if required.type TrashedFile struct {	Filename         string	Filepath         string	FileExt          string	IsDir            bool	Filesize         int64	RemoveTimestamp  int64	RemoveDate       string	OriginalPath     string	OriginalFilename string}
 |