‪TYPO3CMS  9.5
TYPO3\CMS\Core\Resource\ResourceStorage Class Reference
Inheritance diagram for TYPO3\CMS\Core\Resource\ResourceStorage:
TYPO3\CMS\Core\Resource\ResourceStorageInterface

Public Member Functions

 __construct (Driver\DriverInterface $driver, array $storageRecord)
 
array getConfiguration ()
 
 setConfiguration (array $configuration)
 
array getStorageRecord ()
 
ResourceStorage setDriver (Driver\DriverInterface $driver)
 
string getName ()
 
int getUid ()
 
bool hasChildren ()
 
int getCapabilities ()
 
bool isPublic ()
 
bool isWritable ()
 
bool isBrowsable ()
 
bool hasHierarchicalIdentifiers ()
 
FileSearchResultInterface searchFiles (FileSearchDemand $searchDemand, Folder $folder=null, bool $useFilters=true)
 
bool usesCaseSensitiveIdentifiers ()
 
bool isOnline ()
 
bool autoExtractMetadataEnabled ()
 
 markAsPermanentlyOffline ()
 
 markAsTemporaryOffline ()
 
 addFileMount ($folderIdentifier, $additionalData=[])
 
array getFileMounts ()
 
bool isWithinFileMountBoundaries ($subject, $checkWriteAccess=false)
 
 setEvaluatePermissions ($evaluatePermissions)
 
bool getEvaluatePermissions ()
 
 setUserPermissions (array $userPermissions)
 
bool checkUserActionPermission ($action, $type)
 
bool checkFileActionPermission ($action, FileInterface $file)
 
bool checkFolderActionPermission ($action, Folder $folder=null)
 
bool checkFileAndFolderNameFilters (ResourceInterface $fileOrFolder)
 
string sanitizeFileName ($fileName, Folder $targetFolder=null)
 
FileInterface addFile ($localFilePath, Folder $targetFolder, $targetFileName='', $conflictMode=DuplicationBehavior::RENAME, $removeOriginal=true)
 
FileInterface updateProcessedFile ($localFilePath, ProcessedFile $processedFile, Folder $processingFolder=null)
 
string hashFile (FileInterface $fileObject, $hash)
 
string hashFileByIdentifier ($fileIdentifier, $hash)
 
string hashFileIdentifier ($file)
 
string null getPublicUrl (ResourceInterface $resourceObject, $relativeToCurrentScript=false)
 
ProcessedFile processFile (FileInterface $fileObject, $context, array $configuration)
 
string getFileForLocalProcessing (FileInterface $fileObject, $writable=true)
 
FileInterface getFile ($identifier)
 
array getFileInfo (FileInterface $fileObject)
 
array getFileInfoByIdentifier ($identifier, array $propertiesToExtract=[])
 
 unsetFileAndFolderNameFilters ()
 
 resetFileAndFolderNameFiltersToDefault ()
 
array getFileAndFolderNameFilters ()
 
$this setFileAndFolderNameFilters (array $filters)
 
 addFileAndFolderNameFilter ($filter)
 
string getFolderIdentifierFromFileIdentifier ($fileIdentifier)
 
File ProcessedFile null getFileInFolder ($fileName, Folder $folder)
 
File[] getFilesInFolder (Folder $folder, $start=0, $maxNumberOfItems=0, $useFilters=true, $recursive=false, $sort='', $sortRev=false)
 
array getFileIdentifiersInFolder ($folderIdentifier, $useFilters=true, $recursive=false)
 
int countFilesInFolder (Folder $folder, $useFilters=true, $recursive=false)
 
array getFolderIdentifiersInFolder ($folderIdentifier, $useFilters=true, $recursive=false)
 
bool hasFile ($identifier)
 
Folder[] getProcessingFolders ()
 
bool isProcessingFolder (Folder $folder)
 
bool hasFileInFolder ($fileName, Folder $folder)
 
string getFileContents ($file)
 
 dumpFileContents (FileInterface $file, $asDownload=false, $alternativeFilename=null, $overrideMimeType=null)
 
ResponseInterface streamFile (FileInterface $file, bool $asDownload=false, string $alternativeFilename=null, string $overrideMimeType=null)
 
int setFileContents (AbstractFile $file, $contents)
 
FileInterface createFile ($fileName, Folder $targetFolderObject)
 
bool deleteFile ($fileObject)
 
FileInterface copyFile (FileInterface $file, Folder $targetFolder, $targetFileName=null, $conflictMode=DuplicationBehavior::RENAME)
 
FileInterface moveFile ($file, $targetFolder, $targetFileName=null, $conflictMode=DuplicationBehavior::RENAME)
 
FileInterface renameFile ($file, $targetFileName, $conflictMode=DuplicationBehavior::RENAME)
 
FileInterface replaceFile (FileInterface $file, $localFilePath)
 
FileInterface addUploadedFile (array $uploadedFileData, Folder $targetFolder=null, $targetFileName=null, $conflictMode=DuplicationBehavior::CANCEL)
 
Folder moveFolder (Folder $folderToMove, Folder $targetParentFolder, $newFolderName=null, $conflictMode=DuplicationBehavior::RENAME)
 
Folder copyFolder (FolderInterface $folderToCopy, FolderInterface $targetParentFolder, $newFolderName=null, $conflictMode=DuplicationBehavior::RENAME)
 
Folder renameFolder ($folderObject, $newName)
 
bool deleteFolder ($folderObject, $deleteRecursively=false)
 
Folder InaccessibleFolder getFolderInFolder ($folderName, Folder $parentFolder, $returnInaccessibleFolderObject=false)
 
Folder[] getFoldersInFolder (Folder $folder, $start=0, $maxNumberOfItems=0, $useFilters=true, $recursive=false, $sort='', $sortRev=false)
 
int countFoldersInFolder (Folder $folder, $useFilters=true, $recursive=false)
 
bool hasFolder ($identifier)
 
bool hasFolderInFolder ($folderName, Folder $folder)
 
Folder createFolder ($folderName, Folder $parentFolder=null)
 
array getFolderInfo (Folder $folder)
 
Folder getDefaultFolder ()
 
Folder InaccessibleFolder getFolder ($identifier, $returnInaccessibleFolderObject=false)
 
bool isWithinProcessingFolder ($identifier)
 
bool isWithinFolder (Folder $folder, ResourceInterface $resource)
 
Folder getRootLevelFolder ($respectFileMounts=true)
 
string getRole (FolderInterface $folder)
 
Folder getProcessingFolder (File $file=null)
 
string getDriverType ()
 
 setDefault ($isDefault)
 
bool isDefault ()
 
ResourceFactory getResourceFactoryInstance ()
 

Public Attributes

const PROCESSING_FOLDER_LEVELS = 2
 
- ‪Public Attributes inherited from ‪TYPO3\CMS\Core\Resource\ResourceStorageInterface
const SIGNAL_SanitizeFileName = 'sanitizeFileName'
 
const SIGNAL_PreFileAdd = 'preFileAdd'
 
const SIGNAL_PostFileAdd = 'postFileAdd'
 
const SIGNAL_PreFileCreate = 'preFileCreate'
 
const SIGNAL_PostFileCreate = 'postFileCreate'
 
const SIGNAL_PreFileCopy = 'preFileCopy'
 
const SIGNAL_PostFileCopy = 'postFileCopy'
 
const SIGNAL_PreFileMove = 'preFileMove'
 
const SIGNAL_PostFileMove = 'postFileMove'
 
const SIGNAL_PreFileDelete = 'preFileDelete'
 
const SIGNAL_PostFileDelete = 'postFileDelete'
 
const SIGNAL_PreFileRename = 'preFileRename'
 
const SIGNAL_PostFileRename = 'postFileRename'
 
const SIGNAL_PreFileReplace = 'preFileReplace'
 
const SIGNAL_PostFileReplace = 'postFileReplace'
 
const SIGNAL_PreFileSetContents = 'preFileSetContents'
 
const SIGNAL_PostFileSetContents = 'postFileSetContents'
 
const SIGNAL_PreFolderAdd = 'preFolderAdd'
 
const SIGNAL_PostFolderAdd = 'postFolderAdd'
 
const SIGNAL_PreFolderCopy = 'preFolderCopy'
 
const SIGNAL_PostFolderCopy = 'postFolderCopy'
 
const SIGNAL_PreFolderMove = 'preFolderMove'
 
const SIGNAL_PostFolderMove = 'postFolderMove'
 
const SIGNAL_PreFolderDelete = 'preFolderDelete'
 
const SIGNAL_PostFolderDelete = 'postFolderDelete'
 
const SIGNAL_PreFolderRename = 'preFolderRename'
 
const SIGNAL_PostFolderRename = 'postFolderRename'
 
const SIGNAL_PreGeneratePublicUrl = 'preGeneratePublicUrl'
 
const CAPABILITY_BROWSABLE = 1
 
const CAPABILITY_PUBLIC = 2
 
const CAPABILITY_WRITABLE = 4
 
const CAPABILITY_HIERARCHICAL_IDENTIFIERS = 8
 
const DEFAULT_ProcessingFolder = '_processed_'
 

Protected Member Functions

Driver DriverInterface getDriver ()
 
bool hasCapability ($capability)
 
bool checkFileExtensionPermission ($fileName)
 
 assureFolderReadPermission (Folder $folder=null)
 
 assureFolderDeletePermission (Folder $folder, $checkDeleteRecursively)
 
 assureFileReadPermission (FileInterface $file)
 
 assureFileWritePermissions (FileInterface $file)
 
 assureFileReplacePermissions (FileInterface $file)
 
 assureFileDeletePermissions (FileInterface $file)
 
 assureFileAddPermissions ($targetFolder, $targetFileName)
 
 assureFileUploadPermissions ($localFilePath, $targetFolder, $targetFileName, $uploadedFileSize)
 
 assureFileMovePermissions (FileInterface $file, Folder $targetFolder, $targetFileName)
 
 assureFileRenamePermissions (FileInterface $file, $targetFileName)
 
 assureFileCopyPermissions (FileInterface $file, Folder $targetFolder, $targetFileName)
 
 assureFolderCopyPermissions (FolderInterface $folderToCopy, FolderInterface $targetParentFolder)
 
 assureFolderMovePermissions (FolderInterface $folderToMove, FolderInterface $targetParentFolder)
 
ResponseInterface getPseudoStream (FileInterface $file, bool $asDownload=false, string $alternativeFilename=null, string $overrideMimeType=null)
 
File[] getAllFileObjectsInFolder (Folder $folder)
 
 moveFolderBetweenStorages (Folder $folderToMove, Folder $targetParentFolder, $newFolderName)
 
 copyFolderBetweenStorages (Folder $folderToCopy, Folder $targetParentFolder, $newFolderName)
 
string emitSanitizeFileNameSignal ($fileName, Folder $targetFolder)
 
string emitPreFileAddSignal ($targetFileName, Folder $targetFolder, $sourceFilePath)
 
 emitPostFileAddSignal (FileInterface $file, Folder $targetFolder)
 
 emitPreFileCopySignal (FileInterface $file, Folder $targetFolder)
 
 emitPostFileCopySignal (FileInterface $file, Folder $targetFolder)
 
 emitPreFileMoveSignal (FileInterface $file, Folder $targetFolder, string $targetFileName)
 
 emitPostFileMoveSignal (FileInterface $file, Folder $targetFolder, FolderInterface $originalFolder)
 
 emitPreFileRenameSignal (FileInterface $file, $targetFolder)
 
 emitPostFileRenameSignal (FileInterface $file, $sanitizedTargetFileName)
 
 emitPreFileReplaceSignal (FileInterface $file, $localFilePath)
 
 emitPostFileReplaceSignal (FileInterface $file, $localFilePath)
 
 emitPreFileCreateSignal (string $fileName, Folder $targetFolder)
 
 emitPostFileCreateSignal ($newFileIdentifier, Folder $targetFolder)
 
 emitPreFileDeleteSignal (FileInterface $file)
 
 emitPostFileDeleteSignal (FileInterface $file)
 
 emitPreFileSetContentsSignal (FileInterface $file, $content)
 
 emitPostFileSetContentsSignal (FileInterface $file, $content)
 
 emitPreFolderAddSignal (Folder $targetFolder, $name)
 
 emitPostFolderAddSignal (Folder $folder)
 
 emitPreFolderCopySignal (Folder $folder, Folder $targetFolder, $newName)
 
 emitPostFolderCopySignal (Folder $folder, Folder $targetFolder, $newName)
 
 emitPreFolderMoveSignal (Folder $folder, Folder $targetFolder, $newName)
 
 emitPostFolderMoveSignal (Folder $folder, Folder $targetFolder, $newName, Folder $originalFolder)
 
 emitPreFolderRenameSignal (Folder $folder, $newName)
 
 emitPostFolderRenameSignal (Folder $folder, $newName, Folder $newFolder)
 
 emitPreFolderDeleteSignal (Folder $folder)
 
 emitPostFolderDeleteSignal (Folder $folder)
 
 emitPreGeneratePublicUrlSignal (ResourceInterface $resourceObject, $relativeToCurrentScript, array $urlData)
 
string getUniqueName (FolderInterface $folder, $theFile, $dontCheckForUnique=false)
 
Dispatcher getSignalSlotDispatcher ()
 
ObjectManager getObjectManager ()
 
ResourceFactory getFileFactory ()
 
Index FileIndexRepository getFileIndexRepository ()
 
Service FileProcessingService getFileProcessingService ()
 
Folder getNestedProcessingFolder (File $file, Folder $rootProcessingFolder)
 
string[] getNamesForNestedProcessingFolder ($fileIdentifier, $levels)
 
Index Indexer getIndexer ()
 
TYPO3 CMS Core Authentication BackendUserAuthentication getBackendUser ()
 
Folder null getNearestRecyclerFolder (FileInterface $file)
 

Protected Attributes

Driver DriverInterface $driver
 
array $storageRecord
 
array $configuration
 
Service FileProcessingService $fileProcessingService
 
bool $evaluatePermissions = false
 
array $fileMounts = array( )
 
array $userPermissions = array( )
 
int $capabilities
 
Dispatcher $signalSlotDispatcher
 
Folder $processingFolder
 
Folder[] $processingFolders
 
bool $isOnline
 
bool $isDefault = false
 
array $fileAndFolderNameFilters = array( )
 

Detailed Description

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?]

Definition at line 73 of file ResourceStorage.php.

Constructor & Destructor Documentation

◆ __construct()

Member Function Documentation

◆ addFile()

FileInterface TYPO3\CMS\Core\Resource\ResourceStorage::addFile (   $localFilePath,
Folder  $targetFolder,
  $targetFileName = '',
  $conflictMode = DuplicationBehavior::RENAME,
  $removeOriginal = true 
)

Moves a file from the local filesystem to this storage.

Parameters
string$localFilePath‪The file on the server's hard disk to add
Folder$targetFolder‪The target folder where the file should be added
string$targetFileName‪The name of the file to be add, If not set, the local file name is used
string$conflictMode‪a value of the DuplicationBehavior enumeration
bool$removeOriginal‪if set the original file will be removed after successful operation
Exceptions

Definition at line 1196 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\assureFileAddPermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\autoExtractMetadataEnabled(), TYPO3\CMS\Core\Utility\PathUtility\basename(), TYPO3\CMS\Core\Resource\DuplicationBehavior\CANCEL, TYPO3\CMS\Core\Type\Enumeration\cast(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileAddSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileAddSignal(), TYPO3\CMS\Core\Utility\PathUtility\getCanonicalPath(), TYPO3\CMS\Core\Resource\ResourceStorage\getDefaultFolder(), TYPO3\CMS\Core\Resource\ResourceFactory\getFileObjectByStorageAndIdentifier(), TYPO3\CMS\Core\Resource\Folder\getIdentifier(), TYPO3\CMS\Core\Resource\ResourceStorage\getIndexer(), TYPO3\CMS\Core\Resource\ResourceStorage\getResourceFactoryInstance(), TYPO3\CMS\Core\Resource\ResourceStorage\getUid(), TYPO3\CMS\Core\Resource\ResourceStorage\getUniqueName(), TYPO3\CMS\Core\Resource\DuplicationBehavior\RENAME, TYPO3\CMS\Core\Resource\DuplicationBehavior\REPLACE, and TYPO3\CMS\Core\Resource\ResourceStorage\sanitizeFileName().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\addUploadedFile().

◆ addFileAndFolderNameFilter()

TYPO3\CMS\Core\Resource\ResourceStorage::addFileAndFolderNameFilter (   $filter)
Parameters
callable$filter

Definition at line 1478 of file ResourceStorage.php.

◆ addFileMount()

TYPO3\CMS\Core\Resource\ResourceStorage::addFileMount (   $folderIdentifier,
  $additionalData = [] 
)

Adds a filemount as a "filter" for users to only work on a subset of a storage object

Parameters
string$folderIdentifier
array$additionalData
Exceptions
Exception

Definition at line 483 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceFactory\createFolderObject(), TYPO3\CMS\Core\Resource\Folder\getIdentifier(), and TYPO3\CMS\Core\Resource\ResourceStorage\getResourceFactoryInstance().

Referenced by TYPO3\CMS\Core\Resource\Security\StoragePermissionsAspect\addFileMountsToStorage().

◆ addUploadedFile()

FileInterface TYPO3\CMS\Core\Resource\ResourceStorage::addUploadedFile ( array  $uploadedFileData,
Folder  $targetFolder = null,
  $targetFileName = null,
  $conflictMode = DuplicationBehavior::CANCEL 
)

Adds an uploaded file into the Storage. Previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::file_upload()

Parameters
array$uploadedFileData‪contains information about the uploaded file given by $_FILES['file1']
Folder$targetFolder‪the target folder
string$targetFileName‪the file name to be written
string$conflictMode‪a value of the DuplicationBehavior enumeration
Returns
FileInterface The file object

Definition at line 2064 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\addFile(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileUploadPermissions(), TYPO3\CMS\Core\Type\Enumeration\cast(), TYPO3\CMS\Core\Resource\ResourceStorage\getDefaultFolder(), TYPO3\CMS\Core\Resource\ResourceStorage\getFileInFolder(), TYPO3\CMS\Core\Resource\ResourceStorage\hasFileInFolder(), TYPO3\CMS\Core\Resource\DuplicationBehavior\REPLACE, and TYPO3\CMS\Core\Resource\ResourceStorage\replaceFile().

◆ assureFileAddPermissions()

TYPO3\CMS\Core\Resource\ResourceStorage::assureFileAddPermissions (   $targetFolder,
  $targetFileName 
)
protected

Checks if a file/user has the permission to be written to a Folder/Storage. If not, throws an exception.

Parameters
Folder$targetFolder‪The target folder where the file should be written
string$targetFileName‪The file name which should be written into the storage
Exceptions
Exception

Definition at line 945 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\checkFileExtensionPermission(), TYPO3\CMS\Core\Resource\ResourceStorage\checkFolderActionPermission(), TYPO3\CMS\Core\Resource\ResourceStorage\checkUserActionPermission(), and TYPO3\CMS\Core\Resource\ResourceStorage\getUid().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\addFile(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileUploadPermissions(), and TYPO3\CMS\Core\Resource\ResourceStorage\createFile().

◆ assureFileCopyPermissions()

◆ assureFileDeletePermissions()

◆ assureFileMovePermissions()

◆ assureFileReadPermission()

TYPO3\CMS\Core\Resource\ResourceStorage::assureFileReadPermission ( FileInterface  $file)
protected

◆ assureFileRenamePermissions()

TYPO3\CMS\Core\Resource\ResourceStorage::assureFileRenamePermissions ( FileInterface  $file,
  $targetFileName 
)
protected

◆ assureFileReplacePermissions()

◆ assureFileUploadPermissions()

TYPO3\CMS\Core\Resource\ResourceStorage::assureFileUploadPermissions (   $localFilePath,
  $targetFolder,
  $targetFileName,
  $uploadedFileSize 
)
protected

Checks if a file has the permission to be uploaded to a Folder/Storage. If not, throws an exception.

Parameters
string$localFilePath‪the temporary file name from $_FILES['file1']['tmp_name']
Folder$targetFolder‪The target folder where the file should be uploaded
string$targetFileName‪the destination file name $_FILES['file1']['name']
int$uploadedFileSize
Exceptions
Exception

Definition at line 976 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\assureFileAddPermissions().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\addUploadedFile().

◆ assureFileWritePermissions()

◆ assureFolderCopyPermissions()

TYPO3\CMS\Core\Resource\ResourceStorage::assureFolderCopyPermissions ( FolderInterface  $folderToCopy,
FolderInterface  $targetParentFolder 
)
protected

◆ assureFolderDeletePermission()

TYPO3\CMS\Core\Resource\ResourceStorage::assureFolderDeletePermission ( Folder  $folder,
  $checkDeleteRecursively 
)
protected

Assures delete permission for given folder.

Parameters
Folder$folder‪If a folder is given, mountpoints are checked. If not only user folder delete permissions are checked.
bool$checkDeleteRecursively
Exceptions
Exception

Definition at line 823 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\checkFolderActionPermission(), TYPO3\CMS\Core\Resource\ResourceStorage\checkUserActionPermission(), and TYPO3\CMS\Core\Resource\Folder\getName().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\deleteFolder().

◆ assureFolderMovePermissions()

TYPO3\CMS\Core\Resource\ResourceStorage::assureFolderMovePermissions ( FolderInterface  $folderToMove,
FolderInterface  $targetParentFolder 
)
protected

Check if a file has the permission to be copied on a File/Folder/Storage, if not throw an exception

Parameters
FolderInterface$folderToMove
FolderInterface$targetParentFolder
Exceptions

Definition at line 1135 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\checkFolderActionPermission(), TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier(), TYPO3\CMS\Core\Resource\ResourceInterface\getStorage(), and TYPO3\CMS\Core\Resource\ResourceStorage\getUid().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\moveFolder().

◆ assureFolderReadPermission()

◆ autoExtractMetadataEnabled()

bool TYPO3\CMS\Core\Resource\ResourceStorage::autoExtractMetadataEnabled ( )

Returns TRUE if auto extracting of metadata is enabled

Returns
‪bool

Definition at line 429 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\addFile(), and TYPO3\CMS\Core\Resource\ResourceStorage\replaceFile().

◆ checkFileActionPermission()

bool TYPO3\CMS\Core\Resource\ResourceStorage::checkFileActionPermission (   $action,
FileInterface  $file 
)

◆ checkFileAndFolderNameFilters()

bool TYPO3\CMS\Core\Resource\ResourceStorage::checkFileAndFolderNameFilters ( ResourceInterface  $fileOrFolder)
Parameters
ResourceInterface$fileOrFolder
Deprecated:
‪This method will be removed without substitution, use the ResourceStorage API instead
Returns
‪bool

Definition at line 756 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier(), TYPO3\CMS\Core\Resource\ResourceInterface\getName(), and TYPO3\CMS\Core\Resource\ResourceInterface\getParentFolder().

◆ checkFileExtensionPermission()

bool TYPO3\CMS\Core\Resource\ResourceStorage::checkFileExtensionPermission (   $fileName)
protected

◆ checkFolderActionPermission()

bool TYPO3\CMS\Core\Resource\ResourceStorage::checkFolderActionPermission (   $action,
Folder  $folder = null 
)

Checks if a folder operation (= action) is allowed on a Folder.

This method, by design, does not throw exceptions or do logging. See the checkFileActionPermission() method above for the reasons.

Parameters
string$action
Folder$folder
Returns
‪bool

Definition at line 707 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\checkUserActionPermission(), TYPO3\CMS\Core\Resource\ResourceStorage\isBrowsable(), TYPO3\CMS\Core\Resource\ResourceStorage\isWithinFileMountBoundaries(), and TYPO3\CMS\Core\Resource\ResourceStorage\isWritable().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\assureFileAddPermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileCopyPermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileMovePermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileRenamePermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileReplacePermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderCopyPermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderDeletePermission(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderMovePermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderReadPermission(), TYPO3\CMS\Core\Resource\Folder\checkActionPermission(), TYPO3\CMS\Core\Tests\Unit\Resource\ResourceStorageTest\checkFolderPermissionsRespectsFilesystemPermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\createFolder(), TYPO3\CMS\Core\Imaging\IconFactory\getIconForResource(), and TYPO3\CMS\Core\Resource\ResourceStorage\renameFolder().

◆ checkUserActionPermission()

bool TYPO3\CMS\Core\Resource\ResourceStorage::checkUserActionPermission (   $action,
  $type 
)

◆ copyFile()

FileInterface TYPO3\CMS\Core\Resource\ResourceStorage::copyFile ( FileInterface  $file,
Folder  $targetFolder,
  $targetFileName = null,
  $conflictMode = DuplicationBehavior::RENAME 
)

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

Parameters
FileInterface$file
Folder$targetFolder
string$targetFileName‪an optional destination fileName
string$conflictMode‪a value of the DuplicationBehavior enumeration
Exceptions

Definition at line 1878 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\AbstractFile\copyTo().

◆ copyFolder()

◆ copyFolderBetweenStorages()

TYPO3\CMS\Core\Resource\ResourceStorage::copyFolderBetweenStorages ( Folder  $folderToCopy,
Folder  $targetParentFolder,
  $newFolderName 
)
protected

Copies a folder between storages.

Parameters
Folder$folderToCopy
Folder$targetParentFolder
string$newFolderName
Exceptions
NotImplementedMethodException

Definition at line 2228 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\copyFolder().

◆ countFilesInFolder()

int TYPO3\CMS\Core\Resource\ResourceStorage::countFilesInFolder ( Folder  $folder,
  $useFilters = true,
  $recursive = false 
)
Parameters
Folder$folder
bool$useFilters
bool$recursive
Returns
‪int Number of files in folder
Exceptions
Exception

Definition at line 1568 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderReadPermission(), and TYPO3\CMS\Core\Resource\Folder\getIdentifier().

◆ countFoldersInFolder()

int TYPO3\CMS\Core\Resource\ResourceStorage::countFoldersInFolder ( Folder  $folder,
  $useFilters = true,
  $recursive = false 
)
Parameters
Folder$folder
bool$useFilters
bool$recursive
Returns
‪int Number of subfolders
Exceptions
Exception

Definition at line 2364 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderReadPermission(), and TYPO3\CMS\Core\Resource\Folder\getIdentifier().

Referenced by TYPO3\CMS\Form\Domain\Finishers\DeleteUploadsFinisher\isEmptyFolder().

◆ createFile()

FileInterface TYPO3\CMS\Core\Resource\ResourceStorage::createFile (   $fileName,
Folder  $targetFolderObject 
)

◆ createFolder()

Folder TYPO3\CMS\Core\Resource\ResourceStorage::createFolder (   $folderName,
Folder  $parentFolder = null 
)

Creates a new folder.

previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::func_newfolder()

Parameters
string$folderName‪The new folder name
Folder$parentFolder‪(optional) the parent folder to create the new folder inside of. If not given, the root folder is used
Returns
Folder
Exceptions
Exception

Definition at line 2409 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\checkFolderActionPermission(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFolderAddSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFolderAddSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\getDriver(), TYPO3\CMS\Core\Resource\ResourceStorage\getFolder(), and TYPO3\CMS\Core\Resource\ResourceStorage\getRootLevelFolder().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getProcessingFolder().

◆ deleteFile()

◆ deleteFolder()

bool TYPO3\CMS\Core\Resource\ResourceStorage::deleteFolder (   $folderObject,
  $deleteRecursively = false 
)

◆ dumpFileContents()

TYPO3\CMS\Core\Resource\ResourceStorage::dumpFileContents ( FileInterface  $file,
  $asDownload = false,
  $alternativeFilename = null,
  $overrideMimeType = null 
)

Outputs file Contents, clears output buffer first and sends headers accordingly.

Parameters
FileInterface$file
bool$asDownload‪If set Content-Disposition attachment is sent, inline otherwise
string$alternativeFilename‪the filename for the download (if $asDownload is set)
string$overrideMimeType‪If set this will be used as Content-Type header instead of the automatically detected mime type.
Deprecated:
‪since TYPO3 v9.5, will be removed in TYPO3 v10.0.

Definition at line 1688 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier(), TYPO3\CMS\Core\Resource\FileInterface\getMimeType(), TYPO3\CMS\Core\Resource\ResourceInterface\getName(), and TYPO3\CMS\Core\Resource\FileInterface\getSize().

◆ emitPostFileAddSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFileAddSignal ( FileInterface  $file,
Folder  $targetFolder 
)
protected

◆ emitPostFileCopySignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFileCopySignal ( FileInterface  $file,
Folder  $targetFolder 
)
protected

Emits the file post-copy signal.

Parameters
FileInterface$file
Folder$targetFolder

Definition at line 2600 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

◆ emitPostFileCreateSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFileCreateSignal (   $newFileIdentifier,
Folder  $targetFolder 
)
protected

Emits the file post-create signal

Parameters
string$newFileIdentifier
Folder$targetFolder

Definition at line 2690 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\createFile().

◆ emitPostFileDeleteSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFileDeleteSignal ( FileInterface  $file)
protected

Emits the file post-deletion signal

Parameters
FileInterface$file

Definition at line 2710 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

◆ emitPostFileMoveSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFileMoveSignal ( FileInterface  $file,
Folder  $targetFolder,
FolderInterface  $originalFolder 
)
protected

◆ emitPostFileRenameSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFileRenameSignal ( FileInterface  $file,
  $sanitizedTargetFileName 
)
protected

Emits the file post-rename signal.

Parameters
FileInterface$file
string$sanitizedTargetFileName

Definition at line 2646 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\renameFile().

◆ emitPostFileReplaceSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFileReplaceSignal ( FileInterface  $file,
  $localFilePath 
)
protected

Emits the file post-replace signal

Parameters
FileInterface$file
string$localFilePath

Definition at line 2668 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\replaceFile().

◆ emitPostFileSetContentsSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFileSetContentsSignal ( FileInterface  $file,
  $content 
)
protected

◆ emitPostFolderAddSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFolderAddSignal ( Folder  $folder)
protected

◆ emitPostFolderCopySignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFolderCopySignal ( Folder  $folder,
Folder  $targetFolder,
  $newName 
)
protected

Emits the folder post-copy signal.

Parameters
Folder$folder
Folder$targetFolder
$newName

Definition at line 2777 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\copyFolder().

◆ emitPostFolderDeleteSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFolderDeleteSignal ( Folder  $folder)
protected

◆ emitPostFolderMoveSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFolderMoveSignal ( Folder  $folder,
Folder  $targetFolder,
  $newName,
Folder  $originalFolder 
)
protected

Emits the folder post-move signal.

Parameters
Folder$folder
Folder$targetFolder
string$newName
Folder$originalFolder

Definition at line 2802 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\moveFolder().

◆ emitPostFolderRenameSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPostFolderRenameSignal ( Folder  $folder,
  $newName,
Folder  $newFolder 
)
protected

Emits the folder post-rename signal.

Parameters
Folder$folder
string$newName
Folder$newFolder

Definition at line 2825 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\renameFolder().

◆ emitPreFileAddSignal()

string TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFileAddSignal (   $targetFileName,
Folder  $targetFolder,
  $sourceFilePath 
)
protected

Emits file pre-add signal.

Parameters
string$targetFileName
Folder$targetFolder
string$sourceFilePath
Returns
‪string Modified target file name

Definition at line 2566 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\addFile().

◆ emitPreFileCopySignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFileCopySignal ( FileInterface  $file,
Folder  $targetFolder 
)
protected

Emits file pre-copy signal.

Parameters
FileInterface$file
Folder$targetFolder

Definition at line 2589 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

◆ emitPreFileCreateSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFileCreateSignal ( string  $fileName,
Folder  $targetFolder 
)
protected

Emits the file pre-create signal

Parameters
string$fileName
Folder$targetFolder

Definition at line 2679 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\createFile().

◆ emitPreFileDeleteSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFileDeleteSignal ( FileInterface  $file)
protected

◆ emitPreFileMoveSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFileMoveSignal ( FileInterface  $file,
Folder  $targetFolder,
string  $targetFileName 
)
protected

Emits the file pre-move signal.

Parameters
FileInterface$file
Folder$targetFolder
string$targetFileName

Definition at line 2612 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\moveFile().

◆ emitPreFileRenameSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFileRenameSignal ( FileInterface  $file,
  $targetFolder 
)
protected

◆ emitPreFileReplaceSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFileReplaceSignal ( FileInterface  $file,
  $localFilePath 
)
protected

◆ emitPreFileSetContentsSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFileSetContentsSignal ( FileInterface  $file,
  $content 
)
protected

◆ emitPreFolderAddSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFolderAddSignal ( Folder  $targetFolder,
  $name 
)
protected

Emits the folder pre-add signal.

Parameters
Folder$targetFolder
string$name

Definition at line 2743 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\createFolder().

◆ emitPreFolderCopySignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFolderCopySignal ( Folder  $folder,
Folder  $targetFolder,
  $newName 
)
protected

Emits the folder pre-copy signal.

Parameters
Folder$folder
Folder$targetFolder
$newName

Definition at line 2765 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\copyFolder().

◆ emitPreFolderDeleteSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFolderDeleteSignal ( Folder  $folder)
protected

◆ emitPreFolderMoveSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFolderMoveSignal ( Folder  $folder,
Folder  $targetFolder,
  $newName 
)
protected

Emits the folder pre-move signal.

Parameters
Folder$folder
Folder$targetFolder
$newName

Definition at line 2789 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\moveFolder().

◆ emitPreFolderRenameSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreFolderRenameSignal ( Folder  $folder,
  $newName 
)
protected

Emits the folder pre-rename signal.

Parameters
Folder$folder
string$newName

Definition at line 2813 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\renameFolder().

◆ emitPreGeneratePublicUrlSignal()

TYPO3\CMS\Core\Resource\ResourceStorage::emitPreGeneratePublicUrlSignal ( ResourceInterface  $resourceObject,
  $relativeToCurrentScript,
array  $urlData 
)
protected

Emits file pre-processing signal when generating a public url for a file or folder.

Parameters
ResourceInterface$resourceObject
bool$relativeToCurrentScript
array$urlData

Definition at line 2857 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getPublicUrl().

◆ emitSanitizeFileNameSignal()

string TYPO3\CMS\Core\Resource\ResourceStorage::emitSanitizeFileNameSignal (   $fileName,
Folder  $targetFolder 
)
protected

Emits sanitize fileName signal.

Parameters
string$fileName
Folder$targetFolder
Returns
‪string Modified target file name

Definition at line 2552 of file ResourceStorage.php.

References TYPO3\CMS\Extbase\SignalSlot\Dispatcher\dispatch(), and TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\sanitizeFileName().

◆ getAllFileObjectsInFolder()

File [] TYPO3\CMS\Core\Resource\ResourceStorage::getAllFileObjectsInFolder ( Folder  $folder)
protected

Returns an array with all file objects in a folder and its subfolders, with the file identifiers as keys.

Todo:
‪check if this is a duplicate
Parameters
Folder$folder
Returns
File[]

Definition at line 2095 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\Folder\getFiles(), and TYPO3\CMS\Core\Resource\Folder\getSubfolders().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\moveFolder(), and TYPO3\CMS\Core\Resource\ResourceStorage\renameFolder().

◆ getBackendUser()

TYPO3 CMS Core Authentication BackendUserAuthentication TYPO3\CMS\Core\Resource\ResourceStorage::getBackendUser ( )
protected

Returns the current BE user.

Returns
‪\TYPO3\CMS\Core\Authentication\BackendUserAuthentication

Definition at line 3177 of file ResourceStorage.php.

References $GLOBALS.

◆ getCapabilities()

int TYPO3\CMS\Core\Resource\ResourceStorage::getCapabilities ( )

Returns the capabilities of this storage.

Returns
‪int
See also
‪CAPABILITY_* constants

Definition at line 295 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$capabilities.

◆ getConfiguration()

array TYPO3\CMS\Core\Resource\ResourceStorage::getConfiguration ( )

◆ getDefaultFolder()

Folder TYPO3\CMS\Core\Resource\ResourceStorage::getDefaultFolder ( )

◆ getDriver()

Driver DriverInterface TYPO3\CMS\Core\Resource\ResourceStorage::getDriver ( )
protected

Returns the driver object belonging to this storage.

Returns
Driver\DriverInterface

Definition at line 251 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$driver.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\createFolder().

◆ getDriverType()

string TYPO3\CMS\Core\Resource\ResourceStorage::getDriverType ( )

◆ getEvaluatePermissions()

bool TYPO3\CMS\Core\Resource\ResourceStorage::getEvaluatePermissions ( )

Gets whether the permissions to access or write into this storage should be checked or not.

Returns
‪bool $evaluatePermissions

Definition at line 590 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$evaluatePermissions.

Referenced by TYPO3\CMS\Scheduler\Task\FileStorageIndexingTask\execute(), TYPO3\CMS\Scheduler\Task\FileStorageExtractionTask\execute(), and TYPO3\CMS\Core\Resource\ResourceStorage\getNestedProcessingFolder().

◆ getFile()

FileInterface TYPO3\CMS\Core\Resource\ResourceStorage::getFile (   $identifier)

◆ getFileAndFolderNameFilters()

array TYPO3\CMS\Core\Resource\ResourceStorage::getFileAndFolderNameFilters ( )

Returns the file and folder name filters used by this storage.

Returns
‪array

Definition at line 1460 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$fileAndFolderNameFilters.

◆ getFileContents()

string TYPO3\CMS\Core\Resource\ResourceStorage::getFileContents (   $file)

◆ getFileFactory()

◆ getFileForLocalProcessing()

string TYPO3\CMS\Core\Resource\ResourceStorage::getFileForLocalProcessing ( FileInterface  $fileObject,
  $writable = true 
)

Copies a file from the storage for local processing.

Parameters
FileInterface$fileObject
bool$writable
Returns
‪string Path to local file (either original or copied to some temporary local location)

Definition at line 1393 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier().

Referenced by TYPO3\CMS\Core\Resource\AbstractFile\getForLocalProcessing().

◆ getFileIdentifiersInFolder()

array TYPO3\CMS\Core\Resource\ResourceStorage::getFileIdentifiersInFolder (   $folderIdentifier,
  $useFilters = true,
  $recursive = false 
)
Parameters
string$folderIdentifier
bool$useFilters
bool$recursive
Returns
‪array

Definition at line 1555 of file ResourceStorage.php.

◆ getFileIndexRepository()

Index FileIndexRepository TYPO3\CMS\Core\Resource\ResourceStorage::getFileIndexRepository ( )
protected

◆ getFileInfo()

array TYPO3\CMS\Core\Resource\ResourceStorage::getFileInfo ( FileInterface  $fileObject)

Gets information about a file.

Parameters
FileInterface$fileObject
Returns
‪array

Definition at line 1421 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\getFileInfoByIdentifier(), and TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier().

Referenced by TYPO3\CMS\Core\Resource\File\toArray().

◆ getFileInfoByIdentifier()

array TYPO3\CMS\Core\Resource\ResourceStorage::getFileInfoByIdentifier (   $identifier,
array  $propertiesToExtract = [] 
)

Gets information about a file by its identifier.

Parameters
string$identifier
array$propertiesToExtract
Returns
‪array

Definition at line 1434 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getFileInfo().

◆ getFileInFolder()

File ProcessedFile null TYPO3\CMS\Core\Resource\ResourceStorage::getFileInFolder (   $fileName,
Folder  $folder 
)

◆ getFileMounts()

array TYPO3\CMS\Core\Resource\ResourceStorage::getFileMounts ( )

◆ getFileProcessingService()

Service FileProcessingService TYPO3\CMS\Core\Resource\ResourceStorage::getFileProcessingService ( )
protected

◆ getFilesInFolder()

File [] TYPO3\CMS\Core\Resource\ResourceStorage::getFilesInFolder ( Folder  $folder,
  $start = 0,
  $maxNumberOfItems = 0,
  $useFilters = true,
  $recursive = false,
  $sort = '',
  $sortRev = false 
)
Parameters
Folder$folder
int$start
int$maxNumberOfItems
bool$useFilters
bool$recursive
string$sort‪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".
bool$sortRev‪TRUE to indicate reverse sorting (last to first)
Returns
File[]
Exceptions
Exception

Definition at line 1521 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderReadPermission(), TYPO3\CMS\Core\Resource\Index\FileIndexRepository\findByFolder(), TYPO3\CMS\Core\Resource\ResourceStorage\getFileFactory(), TYPO3\CMS\Core\Resource\ResourceStorage\getFileIndexRepository(), TYPO3\CMS\Core\Resource\ResourceFactory\getFileObject(), TYPO3\CMS\Core\Resource\ResourceFactory\getFileObjectByStorageAndIdentifier(), TYPO3\CMS\Core\Resource\Folder\getIdentifier(), TYPO3\CMS\Core\Resource\AbstractFile\getName(), and TYPO3\CMS\Core\Resource\ResourceStorage\getUid().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\deleteFolder().

◆ getFolder()

◆ getFolderIdentifierFromFileIdentifier()

string TYPO3\CMS\Core\Resource\ResourceStorage::getFolderIdentifierFromFileIdentifier (   $fileIdentifier)
Parameters
string$fileIdentifier
Returns
‪string

Definition at line 1488 of file ResourceStorage.php.

◆ getFolderIdentifiersInFolder()

array TYPO3\CMS\Core\Resource\ResourceStorage::getFolderIdentifiersInFolder (   $folderIdentifier,
  $useFilters = true,
  $recursive = false 
)
Parameters
string$folderIdentifier
bool$useFilters
bool$recursive
Returns
‪array

Definition at line 1581 of file ResourceStorage.php.

◆ getFolderInfo()

array TYPO3\CMS\Core\Resource\ResourceStorage::getFolderInfo ( Folder  $folder)

Retrieves information about a folder

Parameters
Folder$folder
Returns
‪array

Definition at line 2439 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\Folder\getIdentifier().

◆ getFolderInFolder()

Folder InaccessibleFolder TYPO3\CMS\Core\Resource\ResourceStorage::getFolderInFolder (   $folderName,
Folder  $parentFolder,
  $returnInaccessibleFolderObject = false 
)

Returns the Identifier for a folder within a given folder.

Parameters
string$folderName‪The name of the target folder
Folder$parentFolder
bool$returnInaccessibleFolderObject
Returns
‪Folder|InaccessibleFolder
Exceptions

Definition at line 2317 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\getFolder(), and TYPO3\CMS\Core\Resource\Folder\getIdentifier().

◆ getFoldersInFolder()

Folder [] TYPO3\CMS\Core\Resource\ResourceStorage::getFoldersInFolder ( Folder  $folder,
  $start = 0,
  $maxNumberOfItems = 0,
  $useFilters = true,
  $recursive = false,
  $sort = '',
  $sortRev = false 
)
Parameters
Folder$folder
int$start
int$maxNumberOfItems
bool$useFilters
bool$recursive
string$sort‪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".
bool$sortRev‪TRUE to indicate reverse sorting (last to first)
Returns
Folder[]

Definition at line 2337 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$processingFolder, TYPO3\CMS\Core\Resource\ResourceStorage\getFolder(), TYPO3\CMS\Core\Resource\Folder\getIdentifier(), and TYPO3\CMS\Core\Resource\ResourceStorage\getProcessingFolders().

◆ getIndexer()

◆ getName()

◆ getNamesForNestedProcessingFolder()

string [] TYPO3\CMS\Core\Resource\ResourceStorage::getNamesForNestedProcessingFolder (   $fileIdentifier,
  $levels 
)
protected

Generates appropriate hashed sub-folder path for a given file identifier

Parameters
string$fileIdentifier
int$levels
Returns
‪string[]

Definition at line 3115 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getNestedProcessingFolder().

◆ getNearestRecyclerFolder()

Folder null TYPO3\CMS\Core\Resource\ResourceStorage::getNearestRecyclerFolder ( FileInterface  $file)
protected

Get the nearest Recycler folder for given file

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
FileInterface$file
Returns
‪Folder|null

Definition at line 3193 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier(), TYPO3\CMS\Core\Resource\ResourceInterface\getParentFolder(), TYPO3\CMS\Core\Resource\ResourceStorage\isBrowsable(), and TYPO3\CMS\Core\Resource\FolderInterface\ROLE_RECYCLER.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\deleteFile().

◆ getNestedProcessingFolder()

◆ getObjectManager()

ObjectManager TYPO3\CMS\Core\Resource\ResourceStorage::getObjectManager ( )
protected

Gets the ObjectManager.

Returns
‪ObjectManager

Definition at line 2930 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getSignalSlotDispatcher().

◆ getProcessingFolder()

◆ getProcessingFolders()

◆ getPseudoStream()

ResponseInterface TYPO3\CMS\Core\Resource\ResourceStorage::getPseudoStream ( FileInterface  $file,
bool  $asDownload = false,
string  $alternativeFilename = null,
string  $overrideMimeType = null 
)
protected

Wrap DriverInterface::dumpFileContents into a SelfEmittableStreamInterface

Parameters
FileInterface$file
bool$asDownload‪If set Content-Disposition attachment is sent, inline otherwise
string$alternativeFilename‪the filename for the download (if $asDownload is set)
string$overrideMimeType‪If set this will be used as Content-Type header instead of the automatically detected mime type.
Returns
‪ResponseInterface

Definition at line 1751 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier(), TYPO3\CMS\Core\Resource\FileInterface\getMimeType(), TYPO3\CMS\Core\Resource\ResourceInterface\getName(), and TYPO3\CMS\Core\Resource\FileInterface\getSize().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\streamFile().

◆ getPublicUrl()

string null TYPO3\CMS\Core\Resource\ResourceStorage::getPublicUrl ( ResourceInterface  $resourceObject,
  $relativeToCurrentScript = false 
)

Returns a publicly accessible URL for a file.

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
ResourceInterface$resourceObject‪The file or folder object
bool$relativeToCurrentScript‪Determines whether the URL returned should be relative to the current script, in case it is relative at all (only for the LocalDriver)
Returns
‪string|null NULL if file is missing or deleted, the generated url otherwise

Definition at line 1317 of file ResourceStorage.php.

References TYPO3\CMS\Core\Utility\PathUtility\dirname(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreGeneratePublicUrlSignal(), TYPO3\CMS\Core\Utility\PathUtility\getAbsoluteWebPath(), TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier(), TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\OnlineMediaHelperRegistry\getInstance(), TYPO3\CMS\Core\Core\Environment\getPublicPath(), TYPO3\CMS\Core\Utility\PathUtility\getRelativePathTo(), TYPO3\CMS\Core\Resource\ResourceStorage\hasCapability(), and TYPO3\CMS\Core\Resource\ResourceStorage\isOnline().

Referenced by TYPO3\CMS\Core\Resource\Folder\getPublicUrl(), TYPO3\CMS\Core\Resource\File\getPublicUrl(), TYPO3\CMS\Core\Resource\AbstractFile\getPublicUrl(), TYPO3\CMS\Core\Resource\ProcessedFile\getPublicUrl(), and TYPO3\CMS\Core\Tests\Unit\Resource\ResourceStorageTest\getPublicUrlReturnsNullIfStorageIsNotOnline().

◆ getResourceFactoryInstance()

◆ getRole()

◆ getRootLevelFolder()

◆ getSignalSlotDispatcher()

Dispatcher TYPO3\CMS\Core\Resource\ResourceStorage::getSignalSlotDispatcher ( )
protected

Get the SignalSlot dispatcher.

Returns
‪Dispatcher

Definition at line 2917 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$signalSlotDispatcher, TYPO3\CMS\Extbase\Object\ObjectManager\get(), and TYPO3\CMS\Core\Resource\ResourceStorage\getObjectManager().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileAddSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileCopySignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileCreateSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileDeleteSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileMoveSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileRenameSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileReplaceSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileSetContentsSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFolderAddSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFolderCopySignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFolderDeleteSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFolderMoveSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFolderRenameSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileAddSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileCopySignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileCreateSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileDeleteSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileMoveSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileRenameSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileReplaceSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileSetContentsSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFolderAddSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFolderCopySignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFolderDeleteSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFolderMoveSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFolderRenameSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreGeneratePublicUrlSignal(), and TYPO3\CMS\Core\Resource\ResourceStorage\emitSanitizeFileNameSignal().

◆ getStorageRecord()

array TYPO3\CMS\Core\Resource\ResourceStorage::getStorageRecord ( )

◆ getUid()

int TYPO3\CMS\Core\Resource\ResourceStorage::getUid ( )

Returns the UID of this storage.

Returns
‪int

Definition at line 271 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\__construct(), TYPO3\CMS\Core\Resource\ResourceStorage\addFile(), TYPO3\CMS\Core\Resource\Security\StoragePermissionsAspect\addFileMountsToStorage(), TYPO3\CMS\Core\Resource\Security\StoragePermissionsAspect\addUserPermissionsToStorage(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileAddPermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileCopyPermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileMovePermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderCopyPermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderMovePermissions(), TYPO3\CMS\Form\Mvc\Configuration\YamlSource\buildCombinedIdentifier(), TYPO3\CMS\Form\Slot\FilePersistenceSlot\buildCombinedIdentifier(), TYPO3\CMS\Core\Resource\ProcessedFileRepository\countByStorage(), TYPO3\CMS\Core\Resource\ResourceStorage\createFile(), TYPO3\CMS\Impexp\Export\export_addSysFile(), TYPO3\CMS\Core\Resource\Index\FileIndexRepository\findByFolder(), TYPO3\CMS\Core\Resource\ProcessedFileRepository\findByStorageAndIdentifier(), TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\AbstractOnlineMediaHelper\findExistingFileByOnlineMediaId(), TYPO3\CMS\Core\Resource\Index\FileIndexRepository\findInStorageAndNotInUidList(), TYPO3\CMS\Core\Resource\Index\FileIndexRepository\findInStorageWithIndexOutstanding(), TYPO3\CMS\Core\Resource\Index\FileIndexRepository\findOneByFileObject(), TYPO3\CMS\Core\Resource\Folder\getCombinedIdentifier(), TYPO3\CMS\Core\Resource\AbstractFile\getCombinedIdentifier(), TYPO3\CMS\Core\Resource\ResourceStorage\getFile(), TYPO3\CMS\Core\Resource\ResourceStorage\getFileInFolder(), TYPO3\CMS\Core\Resource\ResourceStorage\getFilesInFolder(), TYPO3\CMS\Core\Resource\ResourceStorage\getProcessingFolders(), TYPO3\CMS\Core\Resource\Index\FileIndexRepository\hasIndexRecord(), TYPO3\CMS\Core\Resource\ResourceStorage\isOnline(), TYPO3\CMS\Core\Resource\ResourceStorage\markAsPermanentlyOffline(), TYPO3\CMS\Core\Resource\ResourceStorage\markAsTemporaryOffline(), TYPO3\CMS\Core\Resource\ResourceStorage\moveFile(), TYPO3\CMS\Core\Resource\ResourceStorage\moveFolder(), TYPO3\CMS\Core\Resource\AbstractFile\setStorage(), TYPO3\CMS\Core\Resource\Index\FileIndexRepository\update(), and TYPO3\CMS\Impexp\Import\writeSysFileStorageRecords().

◆ getUniqueName()

string TYPO3\CMS\Core\Resource\ResourceStorage::getUniqueName ( FolderInterface  $folder,
  $theFile,
  $dontCheckForUnique = false 
)
protected

Returns the destination path/fileName of a unique fileName/foldername in that path. 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
FolderInterface$folder
string$theFile‪The input fileName to check
bool$dontCheckForUnique‪If set the fileName is returned with the path prepended without checking whether it already existed!
Exceptions

Definition at line 2877 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier(), and TYPO3\CMS\Core\Utility\PathUtility\pathinfo().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\addFile(), TYPO3\CMS\Core\Resource\ResourceStorage\moveFile(), and TYPO3\CMS\Core\Resource\ResourceStorage\renameFile().

◆ hasCapability()

bool TYPO3\CMS\Core\Resource\ResourceStorage::hasCapability (   $capability)
protected

Returns TRUE if this storage has the given capability.

Parameters
int$capability‪A capability, as defined in a CAPABILITY_* constant
Returns
‪bool

Definition at line 306 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getPublicUrl(), TYPO3\CMS\Core\Resource\ResourceStorage\hasHierarchicalIdentifiers(), TYPO3\CMS\Core\Resource\ResourceStorage\isBrowsable(), TYPO3\CMS\Core\Resource\ResourceStorage\isPublic(), and TYPO3\CMS\Core\Resource\ResourceStorage\isWritable().

◆ hasChildren()

bool TYPO3\CMS\Core\Resource\ResourceStorage::hasChildren ( )

Tells whether there are children in this storage.

Returns
‪bool

Definition at line 281 of file ResourceStorage.php.

◆ hasFile()

bool TYPO3\CMS\Core\Resource\ResourceStorage::hasFile (   $identifier)

◆ hasFileInFolder()

bool TYPO3\CMS\Core\Resource\ResourceStorage::hasFileInFolder (   $fileName,
Folder  $folder 
)

Checks if the queried file in the given folder exists

Parameters
string$fileName
Folder$folder
Returns
‪bool

Definition at line 1658 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderReadPermission(), and TYPO3\CMS\Core\Resource\Folder\getIdentifier().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\addUploadedFile().

◆ hasFolder()

bool TYPO3\CMS\Core\Resource\ResourceStorage::hasFolder (   $identifier)

Returns TRUE if the specified folder exists.

Parameters
string$identifier
Returns
‪bool

Definition at line 2377 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderReadPermission().

◆ hasFolderInFolder()

bool TYPO3\CMS\Core\Resource\ResourceStorage::hasFolderInFolder (   $folderName,
Folder  $folder 
)

Checks if the given file exists in the given folder

Parameters
string$folderName
Folder$folder
Returns
‪bool

Definition at line 2390 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\assureFolderReadPermission(), and TYPO3\CMS\Core\Resource\Folder\getIdentifier().

◆ hashFile()

string TYPO3\CMS\Core\Resource\ResourceStorage::hashFile ( FileInterface  $fileObject,
  $hash 
)

◆ hashFileByIdentifier()

string TYPO3\CMS\Core\Resource\ResourceStorage::hashFileByIdentifier (   $fileIdentifier,
  $hash 
)

Creates a (cryptographic) hash for a fileIdentifier.

Parameters
string$fileIdentifier
string$hash
Exceptions

Definition at line 1281 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\hashFile().

◆ hashFileIdentifier()

string TYPO3\CMS\Core\Resource\ResourceStorage::hashFileIdentifier (   $file)

Hashes a file identifier, taking the case sensitivity of the file system into account. This helps mitigating problems with case-insensitive databases.

Parameters
string | FileInterface$file
Returns
‪string

Definition at line 1298 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\Index\FileIndexRepository\findOneByStorageUidAndIdentifier(), and TYPO3\CMS\Core\Resource\FileReference\getHashedIdentifier().

◆ hasHierarchicalIdentifiers()

bool TYPO3\CMS\Core\Resource\ResourceStorage::hasHierarchicalIdentifiers ( )

Returns TRUE if this storage stores folder structure in file identifiers.

Returns
‪bool

Definition at line 350 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\hasCapability().

◆ isBrowsable()

◆ isDefault()

bool TYPO3\CMS\Core\Resource\ResourceStorage::isDefault ( )

◆ isOnline()

◆ isProcessingFolder()

bool TYPO3\CMS\Core\Resource\ResourceStorage::isProcessingFolder ( Folder  $folder)

Returns TRUE if folder that is in current storage is set as processing folder for one of the existing storages

Parameters
Folder$folder
Returns
‪bool

Definition at line 1639 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$processingFolder, TYPO3\CMS\Core\Resource\Folder\getCombinedIdentifier(), and TYPO3\CMS\Core\Resource\ResourceStorage\getProcessingFolders().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getRole().

◆ isPublic()

bool TYPO3\CMS\Core\Resource\ResourceStorage::isPublic ( )

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.

Returns
‪bool

Definition at line 319 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\hasCapability().

◆ isWithinFileMountBoundaries()

bool TYPO3\CMS\Core\Resource\ResourceStorage::isWithinFileMountBoundaries (   $subject,
  $checkWriteAccess = false 
)

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.

Parameters
ResourceInterface$subject‪file or folder
bool$checkWriteAccess‪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
Returns
‪bool

Definition at line 536 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\getRootLevelFolder(), and TYPO3\CMS\Core\Resource\ResourceStorage\isWithinProcessingFolder().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\checkFileActionPermission(), TYPO3\CMS\Core\Resource\ResourceStorage\checkFolderActionPermission(), and TYPO3\CMS\Backend\Template\Components\MetaInformation\getRecordInformations().

◆ isWithinFolder()

◆ isWithinProcessingFolder()

bool TYPO3\CMS\Core\Resource\ResourceStorage::isWithinProcessingFolder (   $identifier)

Returns TRUE if the specified file is in a folder that is set a processing for a storage

Parameters
string$identifier
Returns
‪bool

Definition at line 2497 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$processingFolder, TYPO3\CMS\Core\Resource\Folder\getIdentifier(), and TYPO3\CMS\Core\Resource\ResourceStorage\getProcessingFolders().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\hasFile(), and TYPO3\CMS\Core\Resource\ResourceStorage\isWithinFileMountBoundaries().

◆ isWritable()

bool TYPO3\CMS\Core\Resource\ResourceStorage::isWritable ( )

Returns TRUE if this storage is writable. This is determined by the driver and the storage configuration; user permissions are not taken into account.

Returns
‪bool

Definition at line 330 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\hasCapability().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\checkFileActionPermission(), TYPO3\CMS\Core\Resource\ResourceStorage\checkFolderActionPermission(), TYPO3\CMS\Impexp\Import\isEquivalentObjectStorage(), and TYPO3\CMS\Install\Updates\SvgFilesSanitization\resolveLocalStorages().

◆ markAsPermanentlyOffline()

TYPO3\CMS\Core\Resource\ResourceStorage::markAsPermanentlyOffline ( )

Blows the "fuse" and marks the storage as offline.

Can only be modified by an admin.

Typically, this is only done if the configuration is wrong.

Definition at line 441 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\getUid(), and TYPO3\CMS\Core\Resource\ResourceStorage\isOnline().

◆ markAsTemporaryOffline()

TYPO3\CMS\Core\Resource\ResourceStorage::markAsTemporaryOffline ( )

Marks this storage as offline for the next 5 minutes.

Non-permanent: This typically happens for remote storages that are "flaky" and not available all the time.

Definition at line 463 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\getUid(), and TYPO3\CMS\Core\Resource\ResourceStorage\isOnline().

◆ moveFile()

◆ moveFolder()

◆ moveFolderBetweenStorages()

TYPO3\CMS\Core\Resource\ResourceStorage::moveFolderBetweenStorages ( Folder  $folderToMove,
Folder  $targetParentFolder,
  $newFolderName 
)
protected

Moves the given folder from a different storage to the target folder in this storage.

Parameters
Folder$folderToMove
Folder$targetParentFolder
string$newFolderName
Exceptions
NotImplementedMethodException

Definition at line 2173 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\moveFolder().

◆ processFile()

ProcessedFile TYPO3\CMS\Core\Resource\ResourceStorage::processFile ( FileInterface  $fileObject,
  $context,
array  $configuration 
)

Passes a file to the File Processing Services and returns the resulting ProcessedFile object.

Parameters
FileInterface$fileObject‪The file object
string$context
array$configuration
Returns
ProcessedFile
Exceptions

Definition at line 1376 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$configuration, TYPO3\CMS\Core\Resource\ResourceStorage\getFileProcessingService(), and TYPO3\CMS\Core\Resource\ResourceInterface\getStorage().

Referenced by TYPO3\CMS\Core\Resource\File\process().

◆ renameFile()

◆ renameFolder()

Folder TYPO3\CMS\Core\Resource\ResourceStorage::renameFolder (   $folderObject,
  $newName 
)

◆ replaceFile()

◆ resetFileAndFolderNameFiltersToDefault()

TYPO3\CMS\Core\Resource\ResourceStorage::resetFileAndFolderNameFiltersToDefault ( )

Resets the file and folder name filters to the default values defined in the TYPO3 configuration.

Definition at line 1450 of file ResourceStorage.php.

References $GLOBALS.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\__construct(), and TYPO3\CMS\Install\Updates\SvgFilesSanitization\resolveSvgFiles().

◆ sanitizeFileName()

string TYPO3\CMS\Core\Resource\ResourceStorage::sanitizeFileName (   $fileName,
Folder  $targetFolder = null 
)

Clean a fileName from not allowed characters

Parameters
string$fileName‪The name of the file to be add, If not set, the local file name is used
Folder$targetFolder‪The target folder where the file should be added
Exceptions

Definition at line 1169 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\emitSanitizeFileNameSignal(), and TYPO3\CMS\Core\Resource\ResourceStorage\getDefaultFolder().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\addFile(), and TYPO3\CMS\Core\Resource\ResourceStorage\moveFolder().

◆ searchFiles()

FileSearchResultInterface TYPO3\CMS\Core\Resource\ResourceStorage::searchFiles ( FileSearchDemand  $searchDemand,
Folder  $folder = null,
bool  $useFilters = true 
)

Search for files in a storage based on given restrictions and a possibly given folder.

Parameters
FileSearchDemand$searchDemand
Folder | null$folder
bool$useFilters‪Whether storage filters should be applied
Returns
‪FileSearchResultInterface

Definition at line 364 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\getRootLevelFolder(), and TYPO3\CMS\Core\Resource\Search\FileSearchDemand\withFolder().

◆ setConfiguration()

TYPO3\CMS\Core\Resource\ResourceStorage::setConfiguration ( array  $configuration)

Sets the configuration.

Parameters
array$configuration

Definition at line 219 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$configuration.

◆ setDefault()

TYPO3\CMS\Core\Resource\ResourceStorage::setDefault (   $isDefault)

◆ setDriver()

ResourceStorage TYPO3\CMS\Core\Resource\ResourceStorage::setDriver ( Driver\DriverInterface  $driver)

Sets the storage that belongs to this storage.

Parameters
Driver\DriverInterface$driver
Returns
ResourceStorage

Definition at line 240 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$driver.

Referenced by TYPO3\CMS\Core\Tests\Unit\Resource\ResourceStorageTest\checkFolderPermissionsRespectsFilesystemPermissions().

◆ setEvaluatePermissions()

TYPO3\CMS\Core\Resource\ResourceStorage::setEvaluatePermissions (   $evaluatePermissions)

Sets whether the permissions to access or write into this storage should be checked or not.

Parameters
bool$evaluatePermissions

Definition at line 579 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$evaluatePermissions.

Referenced by TYPO3\CMS\Core\Resource\Security\StoragePermissionsAspect\addUserPermissionsToStorage(), and TYPO3\CMS\Core\Resource\ResourceStorage\getNestedProcessingFolder().

◆ setFileAndFolderNameFilters()

$this TYPO3\CMS\Core\Resource\ResourceStorage::setFileAndFolderNameFilters ( array  $filters)
Parameters
array$filters
Returns
‪$this

Definition at line 1469 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Install\Updates\SvgFilesSanitization\resolveSvgFiles().

◆ setFileContents()

◆ setUserPermissions()

TYPO3\CMS\Core\Resource\ResourceStorage::setUserPermissions ( array  $userPermissions)

Sets the user permissions of the storage.

Parameters
array$userPermissions

Definition at line 600 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$userPermissions.

Referenced by TYPO3\CMS\Core\Resource\Security\StoragePermissionsAspect\addUserPermissionsToStorage().

◆ streamFile()

ResponseInterface TYPO3\CMS\Core\Resource\ResourceStorage::streamFile ( FileInterface  $file,
bool  $asDownload = false,
string  $alternativeFilename = null,
string  $overrideMimeType = null 
)

Returns a PSR-7 Response which can be used to stream the requested file

Parameters
FileInterface$file
bool$asDownload‪If set Content-Disposition attachment is sent, inline otherwise
string$alternativeFilename‪the filename for the download (if $asDownload is set)
string$overrideMimeType‪If set this will be used as Content-Type header instead of the automatically detected mime type.
Returns
‪ResponseInterface

Definition at line 1724 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier(), and TYPO3\CMS\Core\Resource\ResourceStorage\getPseudoStream().

◆ unsetFileAndFolderNameFilters()

TYPO3\CMS\Core\Resource\ResourceStorage::unsetFileAndFolderNameFilters ( )

Unsets the file and folder name filters, thus making this storage return unfiltered filelists.

Definition at line 1442 of file ResourceStorage.php.

◆ updateProcessedFile()

FileInterface TYPO3\CMS\Core\Resource\ResourceStorage::updateProcessedFile (   $localFilePath,
ProcessedFile  $processedFile,
Folder  $processingFolder = null 
)

◆ usesCaseSensitiveIdentifiers()

bool TYPO3\CMS\Core\Resource\ResourceStorage::usesCaseSensitiveIdentifiers ( )

Returns TRUE if the identifiers used by this storage are case-sensitive.

Returns
‪bool

Definition at line 385 of file ResourceStorage.php.

Member Data Documentation

◆ $capabilities

int TYPO3\CMS\Core\Resource\ResourceStorage::$capabilities
protected

The capabilities of this storage as defined in the storage record. Also see the CAPABILITY_* constants below

Definition at line 124 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getCapabilities().

◆ $configuration

array TYPO3\CMS\Core\Resource\ResourceStorage::$configuration
protected

The configuration belonging to this storage (decoded from the configuration field).

Definition at line 91 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getConfiguration(), TYPO3\CMS\Core\Resource\ResourceStorage\processFile(), and TYPO3\CMS\Core\Resource\ResourceStorage\setConfiguration().

◆ $driver

Driver DriverInterface TYPO3\CMS\Core\Resource\ResourceStorage::$driver
protected

◆ $evaluatePermissions

bool TYPO3\CMS\Core\Resource\ResourceStorage::$evaluatePermissions = false
protected

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.

Definition at line 104 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\deleteFile(), TYPO3\CMS\Core\Resource\ResourceStorage\getEvaluatePermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\getProcessingFolder(), and TYPO3\CMS\Core\Resource\ResourceStorage\setEvaluatePermissions().

◆ $fileAndFolderNameFilters

array TYPO3\CMS\Core\Resource\ResourceStorage::$fileAndFolderNameFilters = array( )
protected

The filters used for the files and folder names.

Definition at line 154 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getFileAndFolderNameFilters().

◆ $fileMounts

array TYPO3\CMS\Core\Resource\ResourceStorage::$fileMounts = array( )
protected

User filemounts, added as an array, and used as filters

Definition at line 110 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getFileMounts().

◆ $fileProcessingService

Service FileProcessingService TYPO3\CMS\Core\Resource\ResourceStorage::$fileProcessingService
protected

◆ $isDefault

bool TYPO3\CMS\Core\Resource\ResourceStorage::$isDefault = false
protected

◆ $isOnline

bool TYPO3\CMS\Core\Resource\ResourceStorage::$isOnline
protected

whether this storage is online or offline in this request

Definition at line 144 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\isOnline().

◆ $processingFolder

◆ $processingFolders

Folder [] TYPO3\CMS\Core\Resource\ResourceStorage::$processingFolders
protected

All processing folders of this storage used in any storage

Definition at line 138 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\getProcessingFolders().

◆ $signalSlotDispatcher

Dispatcher TYPO3\CMS\Core\Resource\ResourceStorage::$signalSlotDispatcher
protected

◆ $storageRecord

array TYPO3\CMS\Core\Resource\ResourceStorage::$storageRecord
protected

The database record for this storage

Definition at line 85 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\__construct(), and TYPO3\CMS\Core\Resource\ResourceStorage\getStorageRecord().

◆ $userPermissions

array TYPO3\CMS\Core\Resource\ResourceStorage::$userPermissions = array( )
protected

The file permissions of the user (and their group) merged together and available as an array

Definition at line 117 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\setUserPermissions().

◆ PROCESSING_FOLDER_LEVELS

const TYPO3\CMS\Core\Resource\ResourceStorage::PROCESSING_FOLDER_LEVELS = 2

Levels numbers used to generate hashed subfolders in the processing folder

Definition at line 159 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Core\Tests\Functional\Resource\ResourceStorageTest\getNestedProcessingFolderTest().