ResourceStorage implements ResourceStorageInterface
A "mount point" inside the TYPO3 file handling.
A "storage" object handles
- abstraction to the driver
 - permissions (from the driver, and from the user, + capabilities)
 - an entry point for files, folders, and for most other operations
 
== Driver entry point The driver itself, that does the actual work on the file system, is inside the storage but completely shadowed by the storage, as the storage also handles the abstraction to the driver
The storage can be on the local system, but can also be on a remote system. The combination of driver + configurable capabilities (storage is read-only e.g.) allows for flexible uses.
== Permission system As all requests have to run through the storage, the storage knows about the permissions of a BE/FE user, the file permissions / limitations of the driver and has some configurable capabilities. Additionally, a BE user can use "filemounts" (known from previous installations) to limit his/her work-zone to only a subset (identifier and its subfolders/subfolders) of the user itself.
Check 1: "User Permissions" [is the user allowed to write a file) [is the user allowed to write a file] Check 2: "File Mounts" of the User (act as subsets / filters to the identifiers) [is the user allowed to do something in this folder?] Check 3: "Capabilities" of Storage (then: of Driver) [is the storage/driver writable?] Check 4: "File permissions" of the Driver [is the folder writable?]
Table of Contents
Interfaces
- ResourceStorageInterface
 - The interface for a resource storage containing all constants
 
Constants
- PROCESSING_FOLDER_LEVELS = 2
 - Levels numbers used to generate hashed subfolders in the processing folder
 
Properties
- $capabilities : int
 - The capabilities of this storage as defined in the storage record.
 - $configuration : array<string|int, mixed>
 - The configuration belonging to this storage (decoded from the configuration field).
 - $driver : DriverInterface
 - The storage driver instance belonging to this storage.
 - $evaluatePermissions : bool
 - Whether to check if file or folder is in user mounts and the action is allowed for a user Default is FALSE so that resources are accessible for front end rendering or admins.
 - $eventDispatcher : EventDispatcherInterface
 - $fileAndFolderNameFilters : array<string|int, mixed>
 - The filters used for the files and folder names.
 - $fileMounts : array<string|int, mixed>
 - User filemounts, added as an array, and used as filters
 - $fileProcessingService : FileProcessingService
 - $isDefault : bool
 - $isOnline : bool
 - whether this storage is online or offline in this request
 - $processingFolder : Folder|null
 - $processingFolders : array<string|int, Folder>
 - All processing folders of this storage used in any storage
 - $storageRecord : array<string|int, mixed>
 - The database record for this storage
 - $userPermissions : array<string|int, mixed>
 - The file permissions of the user (and their group) merged together and available as an array
 
Methods
- __construct() : mixed
 - Constructor for a storage object.
 - addFile() : FileInterface
 - Moves a file from the local filesystem to this storage.
 - addFileAndFolderNameFilter() : mixed
 - addFileMount() : mixed
 - Adds a filemount as a "filter" for users to only work on a subset of a storage object
 - addUploadedFile() : FileInterface
 - Adds an uploaded file into the Storage. Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::file_upload()
 - autoExtractMetadataEnabled() : bool
 - Returns TRUE if auto extracting of metadata is enabled
 - checkFileActionPermission() : bool
 - Checks if a file operation (= action) is allowed on a File/Folder/Storage (= subject).
 - checkFolderActionPermission() : bool
 - Checks if a folder operation (= action) is allowed on a Folder.
 - checkUserActionPermission() : bool
 - Checks if the ACL settings allow for a certain action (is a user allowed to read a file or copy a folder).
 - copyFile() : FileInterface
 - Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::func_copy() copies a source file (from any location) in to the target folder, the latter has to be part of this storage
 - copyFolder() : Folder
 - Copies a folder.
 - countFilesInFolder() : int
 - countFoldersInFolder() : int
 - createFile() : FileInterface
 - Creates a new file
 - createFolder() : Folder
 - Creates a new folder.
 - deleteFile() : bool
 - Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::deleteFile()
 - deleteFolder() : bool
 - Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::folder_delete()
 - getCapabilities() : int
 - Returns the capabilities of this storage.
 - getConfiguration() : array<string|int, mixed>
 - Gets the configuration.
 - getDefaultFolder() : Folder
 - Returns the default folder where new files are stored if no other folder is given.
 - getDriverType() : string
 - Gets the driver Type configured for this storage.
 - getEvaluatePermissions() : bool
 - Gets whether the permissions to access or write into this storage should be checked or not.
 - getFile() : FileInterface
 - Gets a file by identifier.
 - getFileAndFolderNameFilters() : array<string|int, mixed>
 - Returns the file and folder name filters used by this storage.
 - getFileByIdentifier() : File|ProcessedFile|null
 - Gets a file object from storage by file identifier If the file is outside of the process folder, it gets indexed and returned as file object afterwards If the file is within processing folder, the file object will be directly returned
 - getFileContents() : string
 - Get contents of a file object
 - getFileForLocalProcessing() : string
 - Copies a file from the storage for local processing.
 - getFileIdentifiersInFolder() : array<string|int, mixed>
 - getFileInfo() : array<string|int, mixed>
 - Gets information about a file.
 - getFileInfoByIdentifier() : array<string|int, mixed>
 - Gets information about a file by its identifier.
 - getFileInFolder() : File|ProcessedFile|null
 - Get file from folder
 - getFileMounts() : array<string|int, mixed>
 - Returns all file mounts that are registered with this storage.
 - getFilesInFolder() : array<string|int, File>
 - getFolder() : Folder|InaccessibleFolder
 - getFolderIdentifierFromFileIdentifier() : string
 - getFolderIdentifiersInFolder() : array<string|int, mixed>
 - getFolderInfo() : array<string|int, mixed>
 - Retrieves information about a folder
 - getFolderInFolder() : Folder|InaccessibleFolder
 - Returns the Identifier for a folder within a given folder.
 - getFoldersInFolder() : array<string|int, Folder>
 - getImportExportFilter() : array<int, ImportExportFilter|string>
 - Returns a filter for files generated by EXT:impexp
 - getName() : string
 - Returns the name of this storage.
 - getProcessingFolder() : Folder
 - Getter function to return the folder where the files can be processed. Does not check for access rights here.
 - getProcessingFolders() : array<string|int, Folder>
 - Get all processing folders that live in this storage
 - getPublicUrl() : string|null
 - Returns a publicly accessible URL for a file.
 - getResourceFactoryInstance() : ResourceFactory
 - getRole() : string
 - Gets the role of a folder.
 - getRootLevelFolder() : Folder
 - Returns the folders on the root level of the storage or the first mount point of this storage for this user if $respectFileMounts is set.
 - getStorageRecord() : array<string|int, mixed>
 - Gets the storage record.
 - getUid() : int
 - Returns the UID of this storage.
 - hasChildren() : bool
 - Tells whether there are children in this storage.
 - hasFile() : bool
 - Returns TRUE if the specified file exists
 - hasFileInFolder() : bool
 - Checks if the queried file in the given folder exists
 - hasFolder() : bool
 - Returns TRUE if the specified folder exists.
 - hasFolderInFolder() : bool
 - Checks if the given file exists in the given folder
 - hashFile() : string
 - Creates a (cryptographic) hash for a file.
 - hashFileByIdentifier() : string
 - Creates a (cryptographic) hash for a fileIdentifier.
 - hashFileIdentifier() : string
 - Hashes a file identifier, taking the case sensitivity of the file system into account. This helps mitigating problems with case-insensitive databases.
 - hasHierarchicalIdentifiers() : bool
 - Returns TRUE if this storage stores folder structure in file identifiers.
 - isBrowsable() : bool
 - Returns TRUE if this storage is browsable by a (backend) user of TYPO3.
 - isDefault() : bool
 - isFallbackStorage() : bool
 - Returns true if this storage is a virtual storage that provides access to all files in the project root.
 - isOnline() : bool
 - Returns TRUE if this storage is browsable by a (backend) user of TYPO3.
 - isProcessingFolder() : bool
 - Returns TRUE if folder that is in current storage is set as processing folder for one of the existing storages
 - isPublic() : bool
 - Returns TRUE if this storage is publicly available. This is just a configuration option and does not mean that it really *is* public. OTOH a storage that is marked as not publicly available will trigger the file publishing mechanisms of TYPO3.
 - isWithinFileMountBoundaries() : bool
 - Checks if the given subject is within one of the registered user file mounts. If not, working with the file is not permitted for the user.
 - isWithinFolder() : bool
 - Checks if a resource (file or folder) is within the given folder
 - isWithinProcessingFolder() : bool
 - Returns TRUE if the specified file is in a folder that is set a processing for a storage
 - isWritable() : bool
 - Returns TRUE if this storage is writable. This is determined by the driver and the storage configuration; user permissions are not taken into account.
 - markAsPermanentlyOffline() : mixed
 - Blows the "fuse" and marks the storage as offline.
 - markAsTemporaryOffline() : mixed
 - Marks this storage as offline for the next 5 minutes.
 - moveFile() : FileInterface
 - Moves a $file into a $targetFolder the target folder has to be part of this storage
 - moveFolder() : Folder
 - Moves a folder. If you want to move a folder from this storage to another one, call this method on the target storage, otherwise you will get an exception.
 - processFile() : ProcessedFile
 - Passes a file to the File Processing Services and returns the resulting ProcessedFile object.
 - renameFile() : FileInterface
 - Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::func_rename()
 - renameFolder() : Folder
 - Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::folder_move()
 - replaceFile() : FileInterface
 - Replaces a file with a local file (e.g. a freshly uploaded file)
 - resetFileAndFolderNameFiltersToDefault() : mixed
 - Resets the file and folder name filters to the default values defined in the TYPO3 configuration.
 - sanitizeFileName() : string
 - Clean up a fileName from not allowed characters
 - searchFiles() : FileSearchResultInterface
 - Search for files in a storage based on given restrictions and a possibly given folder.
 - setConfiguration() : mixed
 - Sets the configuration.
 - setDefault() : mixed
 - setDriver() : ResourceStorage
 - Sets the storage that belongs to this storage.
 - setEvaluatePermissions() : mixed
 - Sets whether the permissions to access or write into this storage should be checked or not.
 - setFileAndFolderNameFilters() : $this
 - setFileContents() : int
 - Set contents of a file object.
 - setUserPermissions() : mixed
 - Sets the user permissions of the storage.
 - streamFile() : ResponseInterface
 - Returns a PSR-7 Response which can be used to stream the requested file
 - unsetFileAndFolderNameFilters() : mixed
 - Unsets the file and folder name filters, thus making this storage return unfiltered filelists.
 - updateProcessedFile() : FileInterface
 - Updates a processed file with a new file from the local filesystem.
 - usesCaseSensitiveIdentifiers() : bool
 - Returns TRUE if the identifiers used by this storage are case-sensitive.
 - assureFileAddPermissions() : mixed
 - Checks if a file/user has the permission to be written to a Folder/Storage.
 - assureFileCopyPermissions() : mixed
 - Check if a file has the permission to be copied on a File/Folder/Storage, if not throw an exception
 - assureFileDeletePermissions() : mixed
 - Assures delete permission for given file.
 - assureFileMovePermissions() : mixed
 - Checks for permissions to move a file.
 - assureFileReadPermission() : mixed
 - Assures read permission for given file.
 - assureFileRenamePermissions() : mixed
 - Checks for permissions to rename a file.
 - assureFileReplacePermissions() : mixed
 - Assure replace permission for given file.
 - assureFileUploadPermissions() : mixed
 - Checks if a file has the permission to be uploaded to a Folder/Storage.
 - assureFileWritePermissions() : mixed
 - Assures write permission for given file.
 - assureFolderCopyPermissions() : mixed
 - Check if a file has the permission to be copied on a File/Folder/Storage, if not throw an exception
 - assureFolderDeletePermission() : mixed
 - Assures delete permission for given folder.
 - assureFolderMovePermissions() : mixed
 - Check if a file has the permission to be copied on a File/Folder/Storage, if not throw an exception
 - assureFolderReadPermission() : mixed
 - Assures read permission for given folder.
 - checkFileExtensionPermission() : bool
 - If the fileName is given, checks it against the TYPO3_CONF_VARS[BE][fileDenyPattern] + and if the file extension is allowed.
 - checkValidFileExtension() : bool
 - Check file extension of an existing file against the current file deny pattern.
 - copyFolderBetweenStorages() : mixed
 - Copies a folder between storages.
 - createFolderObject() : Folder
 - Creates a folder to directly access (a part of) a storage.
 - getAllFileObjectsInFolder() : array<string|int, File>
 - Returns an array with all file objects in a folder and its subfolders, with the file identifiers as keys.
 - getBackendUser() : BackendUserAuthentication
 - Returns the current BE user.
 - getDriver() : DriverInterface
 - Returns the driver object belonging to this storage.
 - getFileFactory() : ResourceFactory
 - getFileIndexRepository() : FileIndexRepository
 - getFileProcessingService() : FileProcessingService
 - getIndexer() : Indexer
 - Gets the Indexer.
 - getNamesForNestedProcessingFolder() : array<string|int, string>
 - Generates appropriate hashed sub-folder path for a given file identifier
 - getNearestRecyclerFolder() : Folder|null
 - Get the nearest Recycler folder for given file
 - getNestedProcessingFolder() : Folder
 - Getter function to return the the file's corresponding hashed subfolder of the processed folder
 - getProcessedFileRepository() : ProcessedFileRepository
 - getPseudoStream() : ResponseInterface
 - Wrap DriverInterface::dumpFileContents into a SelfEmittableStreamInterface
 - getUniqueName() : string
 - Returns the destination path/fileName of a unique fileName/foldername in that path.
 - hasCapability() : bool
 - Returns TRUE if this storage has the given capability.
 - moveFolderBetweenStorages() : mixed
 - Moves the given folder from a different storage to the target folder in this storage.
 
Constants
PROCESSING_FOLDER_LEVELS
Levels numbers used to generate hashed subfolders in the processing folder
    public
        mixed
    PROCESSING_FOLDER_LEVELS
    = 2
    
    
    
    
Properties
$capabilities
The capabilities of this storage as defined in the storage record.
        protected
            int
    $capabilities
    
        Also see the CAPABILITY_* constants below
$configuration
The configuration belonging to this storage (decoded from the configuration field).
        protected
            array<string|int, mixed>
    $configuration
    
    
    
    
    
    
$driver
The storage driver instance belonging to this storage.
        protected
            DriverInterface
    $driver
    
    
    
    
    
    
$evaluatePermissions
Whether to check if file or folder is in user mounts and the action is allowed for a user Default is FALSE so that resources are accessible for front end rendering or admins.
        protected
            bool
    $evaluatePermissions
     = false
    
    
    
    
    
$eventDispatcher
        protected
            EventDispatcherInterface
    $eventDispatcher
    
    
    
    
    
    
$fileAndFolderNameFilters
The filters used for the files and folder names.
        protected
            array<string|int, mixed>
    $fileAndFolderNameFilters
     = []
    
    
    
    
    
$fileMounts
User filemounts, added as an array, and used as filters
        protected
            array<string|int, mixed>
    $fileMounts
     = []
    
    
    
    
    
$fileProcessingService
        protected
            FileProcessingService
    $fileProcessingService
    
    
    
    
    
    
$isDefault
        protected
            bool
    $isDefault
     = false
    
    
    
    
    
$isOnline
whether this storage is online or offline in this request
        protected
            bool
    $isOnline
    
    
    
    
    
    
$processingFolder
        protected
            Folder|null
    $processingFolder
    
    
    
    
    
    
$processingFolders
All processing folders of this storage used in any storage
        protected
            array<string|int, Folder>
    $processingFolders
    
    
    
    
    
    
$storageRecord
The database record for this storage
        protected
            array<string|int, mixed>
    $storageRecord
    
    
    
    
    
    
$userPermissions
The file permissions of the user (and their group) merged together and available as an array
        protected
            array<string|int, mixed>
    $userPermissions
     = []
    
    
    
    
    
Methods
__construct()
Constructor for a storage object.
    public
                    __construct(DriverInterface $driver, array<string|int, mixed> $storageRecord[, EventDispatcherInterface|null $eventDispatcher = null ]) : mixed
    Parameters
- $driver : DriverInterface
 - $storageRecord : array<string|int, mixed>
 - 
                    
The storage record row from the database
 - $eventDispatcher : EventDispatcherInterface|null = null
 
addFile()
Moves a file from the local filesystem to this storage.
    public
                    addFile(string $localFilePath, Folder $targetFolder[, string $targetFileName = '' ][, string $conflictMode = DuplicationBehavior::RENAME ][, bool $removeOriginal = true ]) : FileInterface
    Parameters
- $localFilePath : string
 - 
                    
The file on the server's hard disk to add
 - $targetFolder : Folder
 - 
                    
The target folder where the file should be added
 - $targetFileName : string = ''
 - 
                    
The name of the file to be add, If not set, the local file name is used
 - $conflictMode : string = DuplicationBehavior::RENAME
 - 
                    
a value of the DuplicationBehavior enumeration
 - $removeOriginal : bool = true
 - 
                    
if set the original file will be removed after successful operation
 
Tags
Return values
FileInterfaceaddFileAndFolderNameFilter()
    public
                    addFileAndFolderNameFilter(callable $filter) : mixed
    Parameters
- $filter : callable
 
addFileMount()
Adds a filemount as a "filter" for users to only work on a subset of a storage object
    public
                    addFileMount(string $folderIdentifier[, array<string|int, mixed> $additionalData = [] ]) : mixed
    Parameters
- $folderIdentifier : string
 - $additionalData : array<string|int, mixed> = []
 
Tags
addUploadedFile()
Adds an uploaded file into the Storage. Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::file_upload()
    public
                    addUploadedFile(array<string|int, mixed> $uploadedFileData[, Folder|null $targetFolder = null ][, string|null $targetFileName = null ][, string $conflictMode = DuplicationBehavior::CANCEL ]) : FileInterface
    Parameters
- $uploadedFileData : array<string|int, mixed>
 - 
                    
contains information about the uploaded file given by $_FILES['file1']
 - $targetFolder : Folder|null = null
 - 
                    
the target folder
 - $targetFileName : string|null = null
 - 
                    
the file name to be written
 - $conflictMode : string = DuplicationBehavior::CANCEL
 - 
                    
a value of the DuplicationBehavior enumeration
 
Return values
FileInterface —The file object
autoExtractMetadataEnabled()
Returns TRUE if auto extracting of metadata is enabled
    public
                    autoExtractMetadataEnabled() : bool
    Return values
boolcheckFileActionPermission()
Checks if a file operation (= action) is allowed on a File/Folder/Storage (= subject).
    public
                    checkFileActionPermission(string $action, FileInterface $file) : bool
    This method, by design, does not throw exceptions or do logging. Besides the usage from other methods in this class, it is also used by the Filelist UI to check whether an action is allowed and whether action related UI elements should thus be shown (move icon, edit icon, etc.)
Parameters
- $action : string
 - 
                    
action, can be read, write, delete, editMeta
 - $file : FileInterface
 
Return values
boolcheckFolderActionPermission()
Checks if a folder operation (= action) is allowed on a Folder.
    public
                    checkFolderActionPermission(string $action[, Folder|null $folder = null ]) : bool
    This method, by design, does not throw exceptions or do logging. See the checkFileActionPermission() method above for the reasons.
Parameters
- $action : string
 - $folder : Folder|null = null
 
Return values
boolcheckUserActionPermission()
Checks if the ACL settings allow for a certain action (is a user allowed to read a file or copy a folder).
    public
                    checkUserActionPermission(string $action, string $type) : bool
    Parameters
- $action : string
 - $type : string
 - 
                    
either File or Folder
 
Return values
boolcopyFile()
Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::func_copy() copies a source file (from any location) in to the target folder, the latter has to be part of this storage
    public
                    copyFile(FileInterface $file, Folder $targetFolder[, string $targetFileName = null ][, string $conflictMode = DuplicationBehavior::RENAME ]) : FileInterface
    Parameters
- $file : FileInterface
 - $targetFolder : Folder
 - $targetFileName : string = null
 - 
                    
an optional destination fileName
 - $conflictMode : string = DuplicationBehavior::RENAME
 - 
                    
a value of the DuplicationBehavior enumeration
 
Tags
Return values
FileInterfacecopyFolder()
Copies a folder.
    public
                    copyFolder(FolderInterface $folderToCopy, FolderInterface $targetParentFolder[, string $newFolderName = null ][, string $conflictMode = DuplicationBehavior::RENAME ]) : Folder
    Parameters
- $folderToCopy : FolderInterface
 - 
                    
The folder to copy
 - $targetParentFolder : FolderInterface
 - 
                    
The target folder
 - $newFolderName : string = null
 - $conflictMode : string = DuplicationBehavior::RENAME
 - 
                    
a value of the DuplicationBehavior enumeration
 
Tags
Return values
Folder —The new (copied) folder object
countFilesInFolder()
    public
                    countFilesInFolder(Folder $folder[, bool $useFilters = true ][, bool $recursive = false ]) : int
    Parameters
- $folder : Folder
 - $useFilters : bool = true
 - $recursive : bool = false
 
Tags
Return values
int —Number of files in folder
countFoldersInFolder()
    public
                    countFoldersInFolder(Folder $folder[, bool $useFilters = true ][, bool $recursive = false ]) : int
    Parameters
- $folder : Folder
 - $useFilters : bool = true
 - $recursive : bool = false
 
Tags
Return values
int —Number of subfolders
createFile()
Creates a new file
    public
                    createFile(string $fileName, Folder $targetFolderObject) : FileInterface
    previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::func_newfile()
Parameters
- $fileName : string
 - 
                    
The name of the file to be created
 - $targetFolderObject : Folder
 - 
                    
The target folder where the file should be created
 
Tags
Return values
FileInterface —The file object
createFolder()
Creates a new folder.
    public
                    createFolder(string $folderName[, Folder|null $parentFolder = null ]) : Folder
    previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::func_newfolder()
Parameters
- $folderName : string
 - 
                    
The new folder name
 - $parentFolder : Folder|null = null
 - 
                    
(optional) the parent folder to create the new folder inside of. If not given, the root folder is used
 
Tags
Return values
FolderdeleteFile()
Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::deleteFile()
    public
                    deleteFile(FileInterface $fileObject) : bool
    Parameters
- $fileObject : FileInterface
 
Tags
Return values
bool —TRUE if deletion succeeded
deleteFolder()
Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::folder_delete()
    public
                    deleteFolder(Folder $folderObject[, bool $deleteRecursively = false ]) : bool
    Parameters
- $folderObject : Folder
 - $deleteRecursively : bool = false
 
Tags
Return values
boolgetCapabilities()
Returns the capabilities of this storage.
    public
                    getCapabilities() : int
    Tags
Return values
intgetConfiguration()
Gets the configuration.
    public
                    getConfiguration() : array<string|int, mixed>
    Return values
array<string|int, mixed>getDefaultFolder()
Returns the default folder where new files are stored if no other folder is given.
    public
                    getDefaultFolder() : Folder
    Return values
FoldergetDriverType()
Gets the driver Type configured for this storage.
    public
                    getDriverType() : string
    Return values
stringgetEvaluatePermissions()
Gets whether the permissions to access or write into this storage should be checked or not.
    public
                    getEvaluatePermissions() : bool
    Return values
bool —$evaluatePermissions
getFile()
Gets a file by identifier.
    public
                    getFile(string $identifier) : FileInterface
    Parameters
- $identifier : string
 
Return values
FileInterfacegetFileAndFolderNameFilters()
Returns the file and folder name filters used by this storage.
    public
                    getFileAndFolderNameFilters() : array<string|int, mixed>
    Return values
array<string|int, mixed>getFileByIdentifier()
Gets a file object from storage by file identifier If the file is outside of the process folder, it gets indexed and returned as file object afterwards If the file is within processing folder, the file object will be directly returned
    public
                    getFileByIdentifier(string $fileIdentifier) : File|ProcessedFile|null
    Parameters
- $fileIdentifier : string
 
Return values
File|ProcessedFile|nullgetFileContents()
Get contents of a file object
    public
                    getFileContents(FileInterface $file) : string
    Parameters
- $file : FileInterface
 
Tags
Return values
stringgetFileForLocalProcessing()
Copies a file from the storage for local processing.
    public
                    getFileForLocalProcessing(FileInterface $fileObject[, bool $writable = true ]) : string
    Parameters
- $fileObject : FileInterface
 - $writable : bool = true
 
Return values
string —Path to local file (either original or copied to some temporary local location)
getFileIdentifiersInFolder()
    public
                    getFileIdentifiersInFolder(string $folderIdentifier[, bool $useFilters = true ][, bool $recursive = false ]) : array<string|int, mixed>
    Parameters
- $folderIdentifier : string
 - $useFilters : bool = true
 - $recursive : bool = false
 
Return values
array<string|int, mixed>getFileInfo()
Gets information about a file.
    public
                    getFileInfo(FileInterface $fileObject) : array<string|int, mixed>
    Parameters
- $fileObject : FileInterface
 
Return values
array<string|int, mixed>getFileInfoByIdentifier()
Gets information about a file by its identifier.
    public
                    getFileInfoByIdentifier(string $identifier[, array<string|int, mixed> $propertiesToExtract = [] ]) : array<string|int, mixed>
    Parameters
- $identifier : string
 - $propertiesToExtract : array<string|int, mixed> = []
 
Return values
array<string|int, mixed>getFileInFolder()
Get file from folder
    public
                    getFileInFolder(string $fileName, Folder $folder) : File|ProcessedFile|null
    Parameters
- $fileName : string
 - $folder : Folder
 
Return values
File|ProcessedFile|nullgetFileMounts()
Returns all file mounts that are registered with this storage.
    public
                    getFileMounts() : array<string|int, mixed>
    Return values
array<string|int, mixed>getFilesInFolder()
    public
                    getFilesInFolder(Folder $folder[, int $start = 0 ][, int $maxNumberOfItems = 0 ][, bool $useFilters = true ][, bool $recursive = false ][, string $sort = '' ][, bool $sortRev = false ]) : array<string|int, File>
    Parameters
- $folder : Folder
 - $start : int = 0
 - $maxNumberOfItems : int = 0
 - $useFilters : bool = true
 - $recursive : bool = false
 - $sort : string = ''
 - 
                    
Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
 - $sortRev : bool = false
 - 
                    
TRUE to indicate reverse sorting (last to first)
 
Tags
Return values
array<string|int, File>getFolder()
    public
                    getFolder(string $identifier[, bool $returnInaccessibleFolderObject = false ]) : Folder|InaccessibleFolder
    Parameters
- $identifier : string
 - $returnInaccessibleFolderObject : bool = false
 
Tags
Return values
Folder|InaccessibleFoldergetFolderIdentifierFromFileIdentifier()
    public
                    getFolderIdentifierFromFileIdentifier(string $fileIdentifier) : string
    Parameters
- $fileIdentifier : string
 
Return values
stringgetFolderIdentifiersInFolder()
    public
                    getFolderIdentifiersInFolder(string $folderIdentifier[, bool $useFilters = true ][, bool $recursive = false ]) : array<string|int, mixed>
    Parameters
- $folderIdentifier : string
 - $useFilters : bool = true
 - $recursive : bool = false
 
Return values
array<string|int, mixed>getFolderInfo()
Retrieves information about a folder
    public
                    getFolderInfo(Folder $folder) : array<string|int, mixed>
    Parameters
- $folder : Folder
 
Return values
array<string|int, mixed>getFolderInFolder()
Returns the Identifier for a folder within a given folder.
    public
                    getFolderInFolder(string $folderName, Folder $parentFolder[, bool $returnInaccessibleFolderObject = false ]) : Folder|InaccessibleFolder
    Parameters
- $folderName : string
 - 
                    
The name of the target folder
 - $parentFolder : Folder
 - $returnInaccessibleFolderObject : bool = false
 
Tags
Return values
Folder|InaccessibleFoldergetFoldersInFolder()
    public
                    getFoldersInFolder(Folder $folder[, int $start = 0 ][, int $maxNumberOfItems = 0 ][, bool $useFilters = true ][, bool $recursive = false ][, string $sort = '' ][, bool $sortRev = false ]) : array<string|int, Folder>
    Parameters
- $folder : Folder
 - $start : int = 0
 - $maxNumberOfItems : int = 0
 - $useFilters : bool = true
 - $recursive : bool = false
 - $sort : string = ''
 - 
                    
Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
 - $sortRev : bool = false
 - 
                    
TRUE to indicate reverse sorting (last to first)
 
Return values
array<string|int, Folder>getImportExportFilter()
Returns a filter for files generated by EXT:impexp
    public
                    getImportExportFilter() : array<int, ImportExportFilter|string>
    Return values
array<int, ImportExportFilter|string>getName()
Returns the name of this storage.
    public
                    getName() : string
    Return values
stringgetProcessingFolder()
Getter function to return the folder where the files can be processed. Does not check for access rights here.
    public
                    getProcessingFolder([File|null $file = null ]) : Folder
    Parameters
- $file : File|null = null
 - 
                    
Specific file you want to have the processing folder for
 
Return values
FoldergetProcessingFolders()
Get all processing folders that live in this storage
    public
                    getProcessingFolders() : array<string|int, Folder>
    Return values
array<string|int, Folder>getPublicUrl()
Returns a publicly accessible URL for a file.
    public
                    getPublicUrl(ResourceInterface $resourceObject[, bool $relativeToCurrentScript = false ]) : string|null
    WARNING: Access to the file may be restricted by further means, e.g. some web-based authentication. You have to take care of this yourself.
Parameters
- $resourceObject : ResourceInterface
 - 
                    
The file or folder object
 - $relativeToCurrentScript : bool = false
 - 
                    
Determines whether the URL returned should be relative to the current script, in case it is relative at all (only for the LocalDriver). Deprecated since TYPO3 v11, will be removed in TYPO3 v12.0
 
Return values
string|null —NULL if file is missing or deleted, the generated url otherwise
getResourceFactoryInstance()
    public
                    getResourceFactoryInstance() : ResourceFactory
    Return values
ResourceFactorygetRole()
Gets the role of a folder.
    public
                    getRole(FolderInterface $folder) : string
    Parameters
- $folder : FolderInterface
 - 
                    
Folder object to get the role from
 
Return values
string —The role the folder has
getRootLevelFolder()
Returns the folders on the root level of the storage or the first mount point of this storage for this user if $respectFileMounts is set.
    public
                    getRootLevelFolder([bool $respectFileMounts = true ]) : Folder
    Parameters
- $respectFileMounts : bool = true
 
Return values
FoldergetStorageRecord()
Gets the storage record.
    public
                    getStorageRecord() : array<string|int, mixed>
    Return values
array<string|int, mixed>getUid()
Returns the UID of this storage.
    public
                    getUid() : int
    Return values
inthasChildren()
Tells whether there are children in this storage.
    public
                    hasChildren() : bool
    Return values
boolhasFile()
Returns TRUE if the specified file exists
    public
                    hasFile(string $identifier) : bool
    Parameters
- $identifier : string
 
Return values
boolhasFileInFolder()
Checks if the queried file in the given folder exists
    public
                    hasFileInFolder(string $fileName, Folder $folder) : bool
    Parameters
- $fileName : string
 - $folder : Folder
 
Return values
boolhasFolder()
Returns TRUE if the specified folder exists.
    public
                    hasFolder(string $identifier) : bool
    Parameters
- $identifier : string
 
Return values
boolhasFolderInFolder()
Checks if the given file exists in the given folder
    public
                    hasFolderInFolder(string $folderName, Folder $folder) : bool
    Parameters
- $folderName : string
 - $folder : Folder
 
Return values
boolhashFile()
Creates a (cryptographic) hash for a file.
    public
                    hashFile(FileInterface $fileObject, string $hash) : string
    Parameters
- $fileObject : FileInterface
 - $hash : string
 
Tags
Return values
stringhashFileByIdentifier()
Creates a (cryptographic) hash for a fileIdentifier.
    public
                    hashFileByIdentifier(string $fileIdentifier, string $hash) : string
    Parameters
- $fileIdentifier : string
 - $hash : string
 
Tags
Return values
stringhashFileIdentifier()
Hashes a file identifier, taking the case sensitivity of the file system into account. This helps mitigating problems with case-insensitive databases.
    public
                    hashFileIdentifier(string|FileInterface $file) : string
    Parameters
- $file : string|FileInterface
 
Return values
stringhasHierarchicalIdentifiers()
Returns TRUE if this storage stores folder structure in file identifiers.
    public
                    hasHierarchicalIdentifiers() : bool
    Return values
boolisBrowsable()
Returns TRUE if this storage is browsable by a (backend) user of TYPO3.
    public
                    isBrowsable() : bool
    Return values
boolisDefault()
    public
                    isDefault() : bool
    Return values
boolisFallbackStorage()
Returns true if this storage is a virtual storage that provides access to all files in the project root.
    public
                    isFallbackStorage() : bool
    Return values
boolisOnline()
Returns TRUE if this storage is browsable by a (backend) user of TYPO3.
    public
                    isOnline() : bool
    Return values
boolisProcessingFolder()
Returns TRUE if folder that is in current storage is set as processing folder for one of the existing storages
    public
                    isProcessingFolder(Folder $folder) : bool
    Parameters
- $folder : Folder
 
Return values
boolisPublic()
Returns TRUE if this storage is publicly available. This is just a configuration option and does not mean that it really *is* public. OTOH a storage that is marked as not publicly available will trigger the file publishing mechanisms of TYPO3.
    public
                    isPublic() : bool
    Return values
boolisWithinFileMountBoundaries()
Checks if the given subject is within one of the registered user file mounts. If not, working with the file is not permitted for the user.
    public
                    isWithinFileMountBoundaries(ResourceInterface $subject[, bool $checkWriteAccess = false ]) : bool
    Parameters
- $subject : ResourceInterface
 - 
                    
file or folder
 - $checkWriteAccess : bool = false
 - 
                    
If true, it is not only checked if the subject is within the file mount but also whether it isn't a read only file mount
 
Return values
boolisWithinFolder()
Checks if a resource (file or folder) is within the given folder
    public
                    isWithinFolder(Folder $folder, ResourceInterface $resource) : bool
    Parameters
- $folder : Folder
 - $resource : ResourceInterface
 
Tags
Return values
boolisWithinProcessingFolder()
Returns TRUE if the specified file is in a folder that is set a processing for a storage
    public
                    isWithinProcessingFolder(string $identifier) : bool
    Parameters
- $identifier : string
 
Return values
boolisWritable()
Returns TRUE if this storage is writable. This is determined by the driver and the storage configuration; user permissions are not taken into account.
    public
                    isWritable() : bool
    Return values
boolmarkAsPermanentlyOffline()
Blows the "fuse" and marks the storage as offline.
    public
                    markAsPermanentlyOffline() : mixed
    Can only be modified by an admin.
Typically, this is only done if the configuration is wrong.
markAsTemporaryOffline()
Marks this storage as offline for the next 5 minutes.
    public
                    markAsTemporaryOffline() : mixed
    Non-permanent: This typically happens for remote storages that are "flaky" and not available all the time.
moveFile()
Moves a $file into a $targetFolder the target folder has to be part of this storage
    public
                    moveFile(FileInterface $file, Folder $targetFolder[, string $targetFileName = null ][, string $conflictMode = DuplicationBehavior::RENAME ]) : FileInterface
    previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::func_move()
Parameters
- $file : FileInterface
 - $targetFolder : Folder
 - $targetFileName : string = null
 - 
                    
an optional destination fileName
 - $conflictMode : string = DuplicationBehavior::RENAME
 - 
                    
a value of the DuplicationBehavior enumeration
 
Tags
Return values
FileInterfacemoveFolder()
Moves a folder. If you want to move a folder from this storage to another one, call this method on the target storage, otherwise you will get an exception.
    public
                    moveFolder(Folder $folderToMove, Folder $targetParentFolder[, string $newFolderName = null ][, string $conflictMode = DuplicationBehavior::RENAME ]) : Folder
    Parameters
- $folderToMove : Folder
 - 
                    
The folder to move.
 - $targetParentFolder : Folder
 - 
                    
The target parent folder
 - $newFolderName : string = null
 - $conflictMode : string = DuplicationBehavior::RENAME
 - 
                    
a value of the DuplicationBehavior enumeration
 
Tags
Return values
FolderprocessFile()
Passes a file to the File Processing Services and returns the resulting ProcessedFile object.
    public
                    processFile(FileInterface $fileObject, string $context, array<string|int, mixed> $configuration) : ProcessedFile
    Parameters
- $fileObject : FileInterface
 - 
                    
The file object
 - $context : string
 - $configuration : array<string|int, mixed>
 
Tags
Return values
ProcessedFilerenameFile()
Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::func_rename()
    public
                    renameFile(FileInterface $file, string $targetFileName[, string $conflictMode = DuplicationBehavior::RENAME ]) : FileInterface
    Parameters
- $file : FileInterface
 - $targetFileName : string
 - $conflictMode : string = DuplicationBehavior::RENAME
 
Tags
Return values
FileInterfacerenameFolder()
Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::folder_move()
    public
                    renameFolder(Folder $folderObject, string $newName) : Folder
    Parameters
- $folderObject : Folder
 - $newName : string
 
Tags
Return values
FolderreplaceFile()
Replaces a file with a local file (e.g. a freshly uploaded file)
    public
                    replaceFile(FileInterface $file, string $localFilePath) : FileInterface
    Parameters
- $file : FileInterface
 - $localFilePath : string
 
Tags
Return values
FileInterfaceresetFileAndFolderNameFiltersToDefault()
Resets the file and folder name filters to the default values defined in the TYPO3 configuration.
    public
                    resetFileAndFolderNameFiltersToDefault() : mixed
    sanitizeFileName()
Clean up a fileName from not allowed characters
    public
                    sanitizeFileName(string $fileName[, Folder|null $targetFolder = null ]) : string
    Parameters
- $fileName : string
 - 
                    
The name of the file to be sanitized
 - $targetFolder : Folder|null = null
 - 
                    
The target folder where the file is located or should be added
 
Return values
stringsearchFiles()
Search for files in a storage based on given restrictions and a possibly given folder.
    public
                    searchFiles(FileSearchDemand $searchDemand[, Folder|null $folder = null ][, bool $useFilters = true ]) : FileSearchResultInterface
    Parameters
- $searchDemand : FileSearchDemand
 - $folder : Folder|null = null
 - $useFilters : bool = true
 - 
                    
Whether storage filters should be applied
 
Return values
FileSearchResultInterfacesetConfiguration()
Sets the configuration.
    public
                    setConfiguration(array<string|int, mixed> $configuration) : mixed
    Parameters
- $configuration : array<string|int, mixed>
 
setDefault()
    public
                    setDefault(bool $isDefault) : mixed
    Parameters
- $isDefault : bool
 
setDriver()
Sets the storage that belongs to this storage.
    public
                    setDriver(DriverInterface $driver) : ResourceStorage
    Parameters
- $driver : DriverInterface
 
Return values
ResourceStoragesetEvaluatePermissions()
Sets whether the permissions to access or write into this storage should be checked or not.
    public
                    setEvaluatePermissions(bool $evaluatePermissions) : mixed
    Parameters
- $evaluatePermissions : bool
 
setFileAndFolderNameFilters()
    public
                    setFileAndFolderNameFilters(array<string|int, mixed> $filters) : $this
    Parameters
- $filters : array<string|int, mixed>
 
Return values
$thissetFileContents()
Set contents of a file object.
    public
                    setFileContents(AbstractFile $file, string $contents) : int
    Parameters
- $file : AbstractFile
 - $contents : string
 
Tags
Return values
int —The number of bytes written to the file
setUserPermissions()
Sets the user permissions of the storage.
    public
                    setUserPermissions(array<string|int, mixed> $userPermissions) : mixed
    Parameters
- $userPermissions : array<string|int, mixed>
 
streamFile()
Returns a PSR-7 Response which can be used to stream the requested file
    public
                    streamFile(FileInterface $file[, bool $asDownload = false ][, string|null $alternativeFilename = null ][, string|null $overrideMimeType = null ]) : ResponseInterface
    Parameters
- $file : FileInterface
 - $asDownload : bool = false
 - 
                    
If set Content-Disposition attachment is sent, inline otherwise
 - $alternativeFilename : string|null = null
 - 
                    
the filename for the download (if $asDownload is set)
 - $overrideMimeType : string|null = null
 - 
                    
If set this will be used as Content-Type header instead of the automatically detected mime type.
 
Return values
ResponseInterfaceunsetFileAndFolderNameFilters()
Unsets the file and folder name filters, thus making this storage return unfiltered filelists.
    public
                    unsetFileAndFolderNameFilters() : mixed
    updateProcessedFile()
Updates a processed file with a new file from the local filesystem.
    public
                    updateProcessedFile(string $localFilePath, ProcessedFile $processedFile[, Folder|null $processingFolder = null ]) : FileInterface
    Parameters
- $localFilePath : string
 - $processedFile : ProcessedFile
 - $processingFolder : Folder|null = null
 
use only
Tags
Return values
FileInterfaceusesCaseSensitiveIdentifiers()
Returns TRUE if the identifiers used by this storage are case-sensitive.
    public
                    usesCaseSensitiveIdentifiers() : bool
    Return values
boolassureFileAddPermissions()
Checks if a file/user has the permission to be written to a Folder/Storage.
    protected
                    assureFileAddPermissions(Folder $targetFolder, string $targetFileName) : mixed
    If not, throws an exception.
Parameters
- $targetFolder : Folder
 - 
                    
The target folder where the file should be written
 - $targetFileName : string
 - 
                    
The file name which should be written into the storage
 
Tags
assureFileCopyPermissions()
Check if a file has the permission to be copied on a File/Folder/Storage, if not throw an exception
    protected
                    assureFileCopyPermissions(FileInterface $file, Folder $targetFolder, string $targetFileName) : mixed
    Parameters
- $file : FileInterface
 - $targetFolder : Folder
 - $targetFileName : string
 
Tags
assureFileDeletePermissions()
Assures delete permission for given file.
    protected
                    assureFileDeletePermissions(FileInterface $file) : mixed
    Parameters
- $file : FileInterface
 
Tags
assureFileMovePermissions()
Checks for permissions to move a file.
    protected
                    assureFileMovePermissions(FileInterface $file, Folder $targetFolder, string $targetFileName) : mixed
    Parameters
- $file : FileInterface
 - $targetFolder : Folder
 - $targetFileName : string
 
Tags
assureFileReadPermission()
Assures read permission for given file.
    protected
                    assureFileReadPermission(FileInterface $file) : mixed
    Parameters
- $file : FileInterface
 
Tags
assureFileRenamePermissions()
Checks for permissions to rename a file.
    protected
                    assureFileRenamePermissions(FileInterface $file, string $targetFileName) : mixed
    Parameters
- $file : FileInterface
 - $targetFileName : string
 
Tags
assureFileReplacePermissions()
Assure replace permission for given file.
    protected
                    assureFileReplacePermissions(FileInterface $file) : mixed
    Parameters
- $file : FileInterface
 
Tags
assureFileUploadPermissions()
Checks if a file has the permission to be uploaded to a Folder/Storage.
    protected
                    assureFileUploadPermissions(string $localFilePath, Folder $targetFolder, string $targetFileName, int $uploadedFileSize) : mixed
    If not, throws an exception.
Parameters
- $localFilePath : string
 - 
                    
the temporary file name from $_FILES['file1']['tmp_name']
 - $targetFolder : Folder
 - 
                    
The target folder where the file should be uploaded
 - $targetFileName : string
 - 
                    
the destination file name $_FILES['file1']['name']
 - $uploadedFileSize : int
 
Tags
assureFileWritePermissions()
Assures write permission for given file.
    protected
                    assureFileWritePermissions(FileInterface $file) : mixed
    Parameters
- $file : FileInterface
 
Tags
assureFolderCopyPermissions()
Check if a file has the permission to be copied on a File/Folder/Storage, if not throw an exception
    protected
                    assureFolderCopyPermissions(FolderInterface $folderToCopy, FolderInterface $targetParentFolder) : mixed
    Parameters
- $folderToCopy : FolderInterface
 - $targetParentFolder : FolderInterface
 
Tags
assureFolderDeletePermission()
Assures delete permission for given folder.
    protected
                    assureFolderDeletePermission(Folder $folder, bool $checkDeleteRecursively) : mixed
    Parameters
- $folder : Folder
 - 
                    
If a folder is given, mountpoints are checked. If not only user folder delete permissions are checked.
 - $checkDeleteRecursively : bool
 
Tags
assureFolderMovePermissions()
Check if a file has the permission to be copied on a File/Folder/Storage, if not throw an exception
    protected
                    assureFolderMovePermissions(FolderInterface $folderToMove, FolderInterface $targetParentFolder) : mixed
    Parameters
- $folderToMove : FolderInterface
 - $targetParentFolder : FolderInterface
 
Tags
assureFolderReadPermission()
Assures read permission for given folder.
    protected
                    assureFolderReadPermission([Folder|null $folder = null ]) : mixed
    Parameters
- $folder : Folder|null = null
 - 
                    
If a folder is given, mountpoints are checked. If not only user folder read permissions are checked.
 
Tags
checkFileExtensionPermission()
If the fileName is given, checks it against the TYPO3_CONF_VARS[BE][fileDenyPattern] + and if the file extension is allowed.
    protected
                    checkFileExtensionPermission(string $fileName) : bool
    Parameters
- $fileName : string
 - 
                    
full filename
 
Return values
bool —TRUE if extension/filename is allowed
checkValidFileExtension()
Check file extension of an existing file against the current file deny pattern.
    protected
                    checkValidFileExtension(FileInterface $file) : bool
    Parameters
- $file : FileInterface
 
Return values
boolcopyFolderBetweenStorages()
Copies a folder between storages.
    protected
                    copyFolderBetweenStorages(FolderInterface $folderToCopy, FolderInterface $targetParentFolder, string $newFolderName) : mixed
    Parameters
- $folderToCopy : FolderInterface
 - $targetParentFolder : FolderInterface
 - $newFolderName : string
 
Tags
createFolderObject()
Creates a folder to directly access (a part of) a storage.
    protected
                    createFolderObject(string $identifier, string $name) : Folder
    Parameters
- $identifier : string
 - 
                    
The path to the folder. Might also be a simple unique string, depending on the storage driver.
 - $name : string
 - 
                    
The name of the folder (e.g. the folder name)
 
Return values
FoldergetAllFileObjectsInFolder()
Returns an array with all file objects in a folder and its subfolders, with the file identifiers as keys.
    protected
                    getAllFileObjectsInFolder(Folder $folder) : array<string|int, File>
    Parameters
- $folder : Folder
 
Tags
Return values
array<string|int, File>getBackendUser()
Returns the current BE user.
    protected
                    getBackendUser() : BackendUserAuthentication
    Return values
BackendUserAuthenticationgetDriver()
Returns the driver object belonging to this storage.
    protected
                    getDriver() : DriverInterface
    Return values
DriverInterfacegetFileFactory()
    protected
                    getFileFactory() : ResourceFactory
    Return values
ResourceFactorygetFileIndexRepository()
    protected
                    getFileIndexRepository() : FileIndexRepository
    Return values
FileIndexRepositorygetFileProcessingService()
    protected
                    getFileProcessingService() : FileProcessingService
    Return values
FileProcessingServicegetIndexer()
Gets the Indexer.
    protected
                    getIndexer() : Indexer
    Return values
IndexergetNamesForNestedProcessingFolder()
Generates appropriate hashed sub-folder path for a given file identifier
    protected
                    getNamesForNestedProcessingFolder(string $fileIdentifier, int $levels) : array<string|int, string>
    Parameters
- $fileIdentifier : string
 - $levels : int
 
Return values
array<string|int, string>getNearestRecyclerFolder()
Get the nearest Recycler folder for given file
    protected
                    getNearestRecyclerFolder(FileInterface $file) : Folder|null
    Return null if:
- There is no folder with ROLE_RECYCLER in the rootline of the given File
 - File is a ProcessedFile (we don't know the concept of recycler folders for processedFiles)
 - File is located in a folder with ROLE_RECYCLER
 
Parameters
- $file : FileInterface
 
Return values
Folder|nullgetNestedProcessingFolder()
Getter function to return the the file's corresponding hashed subfolder of the processed folder
    protected
                    getNestedProcessingFolder(File $file, Folder $rootProcessingFolder) : Folder
    Parameters
Tags
Return values
FoldergetProcessedFileRepository()
    protected
                    getProcessedFileRepository() : ProcessedFileRepository
    Return values
ProcessedFileRepositorygetPseudoStream()
Wrap DriverInterface::dumpFileContents into a SelfEmittableStreamInterface
    protected
                    getPseudoStream(FileInterface $file[, bool $asDownload = false ][, string|null $alternativeFilename = null ][, string|null $overrideMimeType = null ]) : ResponseInterface
    Parameters
- $file : FileInterface
 - $asDownload : bool = false
 - 
                    
If set Content-Disposition attachment is sent, inline otherwise
 - $alternativeFilename : string|null = null
 - 
                    
the filename for the download (if $asDownload is set)
 - $overrideMimeType : string|null = null
 - 
                    
If set this will be used as Content-Type header instead of the automatically detected mime type.
 
Return values
ResponseInterfacegetUniqueName()
Returns the destination path/fileName of a unique fileName/foldername in that path.
    protected
                    getUniqueName(FolderInterface $folder, string $theFile[, bool $dontCheckForUnique = false ]) : string
    If $theFile exists in $theDest (directory) the file have numbers appended up to $this->maxNumber. Hereafter a unique string will be appended. This function is used by fx. DataHandler when files are attached to records and needs to be uniquely named in the uploads/* folders
Parameters
- $folder : FolderInterface
 - $theFile : string
 - 
                    
The input fileName to check
 - $dontCheckForUnique : bool = false
 - 
                    
If set the fileName is returned with the path prepended without checking whether it already existed!
 
Tags
Return values
string —A unique fileName inside $folder, based on $theFile.
hasCapability()
Returns TRUE if this storage has the given capability.
    protected
                    hasCapability(int $capability) : bool
    Parameters
- $capability : int
 - 
                    
A capability, as defined in a CAPABILITY_* constant
 
Return values
boolmoveFolderBetweenStorages()
Moves the given folder from a different storage to the target folder in this storage.
    protected
                    moveFolderBetweenStorages(Folder $folderToMove, Folder $targetParentFolder, string $newFolderName) : mixed