TYPO3 CMS  TYPO3_6-2
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)
 
 getConfiguration ()
 
 setConfiguration (array $configuration)
 
 getStorageRecord ()
 
 setDriver (Driver\DriverInterface $driver)
 
 getFolderByIdentifier ($identifier)
 
 getFileByIdentifier ($identifier)
 
 getName ()
 
 getUid ()
 
 hasChildren ()
 
 getCapabilities ()
 
 isPublic ()
 
 isWritable ()
 
 isBrowsable ()
 
 usesCaseSensitiveIdentifiers ()
 
 isOnline ()
 
 markAsPermanentlyOffline ()
 
 markAsTemporaryOffline ()
 
 addFileMount ($folderIdentifier, $additionalData=array())
 
 getFileMounts ()
 
 isWithinFileMountBoundaries ($subject, $checkWriteAccess=FALSE)
 
 setEvaluatePermissions ($evaluatePermissions)
 
 getEvaluatePermissions ()
 
 setUserPermissions (array $userPermissions)
 
 checkUserActionPermission ($action, $type)
 
 checkFileActionPermission ($action, FileInterface $file)
 
 checkFolderActionPermission ($action, Folder $folder=NULL)
 
 addFile ($localFilePath, Folder $targetFolder, $targetFileName='', $conflictMode='changeName')
 
 updateProcessedFile ($localFilePath, ProcessedFile $processedFile, Folder $processingFolder=NULL)
 
 hashFile (FileInterface $fileObject, $hash)
 
 hashFileByIdentifier ($fileIdentifier, $hash)
 
 getPublicUrl (ResourceInterface $resourceObject, $relativeToCurrentScript=FALSE)
 
 processFile (FileInterface $fileObject, $context, array $configuration)
 
 getFileForLocalProcessing (FileInterface $fileObject, $writable=TRUE)
 
 getFile ($identifier)
 
 getFileInfo (FileInterface $fileObject)
 
 getFileInfoByIdentifier ($identifier, array $propertiesToExtract=array())
 
 unsetFileAndFolderNameFilters ()
 
 resetFileAndFolderNameFiltersToDefault ()
 
 getFileAndFolderNameFilters ()
 
 setFileAndFolderNameFilters (array $filters)
 
 addFileAndFolderNameFilter ($filter)
 
 getFolderIdentifierFromFileIdentifier ($fileIdentifier)
 
 getFileList ($path, $start=0, $numberOfItems=0, $useFilters=TRUE, $loadIndexRecords=TRUE, $recursive=FALSE)
 
 getFilesInFolder (Folder $folder, $start=0, $maxNumberOfItems=0, $useFilters=TRUE, $recursive=FALSE)
 
 getFileIdentifiersInFolder ($folderIdentifier, $useFilters=TRUE, $recursive=FALSE)
 
 getFolderIdentifiersInFolder ($folderIdentifier, $useFilters=TRUE, $recursive=FALSE)
 
 hasFile ($identifier)
 
 isProcessingFolder (Folder $folder)
 
 hasFileInFolder ($fileName, Folder $folder)
 
 getFileContents ($file)
 
 dumpFileContents (FileInterface $file, $asDownload=FALSE, $alternativeFilename=NULL)
 
 setFileContents (AbstractFile $file, $contents)
 
 createFile ($fileName, Folder $targetFolderObject)
 
 deleteFile ($fileObject)
 
 copyFile (FileInterface $file, Folder $targetFolder, $targetFileName=NULL, $conflictMode='renameNewFile')
 
 moveFile ($file, $targetFolder, $targetFileName=NULL, $conflictMode='renameNewFile')
 
 renameFile ($file, $targetFileName)
 
 replaceFile (FileInterface $file, $localFilePath)
 
 addUploadedFile (array $uploadedFileData, Folder $targetFolder=NULL, $targetFileName=NULL, $conflictMode='cancel')
 
 moveFolder (Folder $folderToMove, Folder $targetParentFolder, $newFolderName=NULL, $conflictMode='renameNewFolder')
 
 copyFolder (FolderInterface $folderToCopy, FolderInterface $targetParentFolder, $newFolderName=NULL, $conflictMode='renameNewFolder')
 
 renameFolder ($folderObject, $newName)
 
 deleteFolder ($folderObject, $deleteRecursively=FALSE)
 
 getFolderList ($path, $start=0, $numberOfItems=0, $useFilters=TRUE)
 
 getFoldersInFolder (Folder $folder, $start=0, $maxNumberOfItems=0, $useFilters=TRUE, $recursive=FALSE)
 
 fetchFolderListFromDriver ($path, $start=0, $numberOfItems=0, array $folderFilterCallbacks=array(), $recursive=FALSE)
 
 hasFolder ($identifier)
 
 hasFolderInFolder ($folderName, Folder $folder)
 
 createFolder ($folderName, Folder $parentFolder=NULL)
 
 getDefaultFolder ()
 
 getFolder ($identifier, $returnInaccessibleFolderObject=FALSE)
 
 isWithinProcessingFolder ($identifier)
 
 isWithinFolder (Folder $folder, ResourceInterface $resource)
 
 getRootLevelFolder ($respectFileMounts=TRUE)
 
 getRole (FolderInterface $folder)
 
 getProcessingFolder ()
 
 getDriverType ()
 
 setDefault ($isDefault)
 
 isDefault ()
 

Protected Member Functions

 getDriver ()
 
 hasCapability ($capability)
 
 checkFileExtensionPermission ($fileName)
 
 assureFolderReadPermission (Folder $folder=NULL)
 
 assureFolderDeletePermission (Folder $folder, $checkDeleteRecursively)
 
 assureFileReadPermission (FileInterface $file)
 
 assureFileWritePermissions (FileInterface $file)
 
 assureFileDeletePermissions (FileInterface $file)
 
 assureFileAddPermissions ($localFilePath, $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)
 
 moveFolderBetweenStorages (Folder $folderToMove, Folder $targetParentFolder, $newFolderName)
 
 copyFolderBetweenStorages (Folder $folderToCopy, Folder $targetParentFolder, $newFolderName)
 
 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)
 
 emitPostFileMoveSignal (FileInterface $file, Folder $targetFolder, Folder $originalFolder)
 
 emitPreFileRenameSignal (FileInterface $file, $targetFolder)
 
 emitPostFileRenameSignal (FileInterface $file, $targetFolder)
 
 emitPreFileReplaceSignal (FileInterface $file, $localFilePath)
 
 emitPostFileReplaceSignal (FileInterface $file, $localFilePath)
 
 emitPostFileCreateSignal ($newFileIdentifier, Folder $targetFolder)
 
 emitPreFileDeleteSignal (FileInterface $file)
 
 emitPostFileDeleteSignal (FileInterface $file)
 
 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)
 
 emitPreFolderDeleteSignal (Folder $folder)
 
 emitPostFolderDeleteSignal (Folder $folder)
 
 emitPreGeneratePublicUrlSignal (ResourceInterface $resourceObject, $relativeToCurrentScript, array $urlData)
 
 getUniqueName (Folder $folder, $theFile, $dontCheckForUnique=FALSE)
 
 getSignalSlotDispatcher ()
 
 getObjectManager ()
 
 getFileFactory ()
 
 getFileIndexRepository ()
 
 getFileProcessingService ()
 
 getIndexer ()
 

Protected Attributes

 $driver
 
 $storageRecord
 
 $configuration
 
 $fileProcessingService
 
 $evaluatePermissions = FALSE
 
 $fileMounts = array()
 
 $userPermissions = array()
 
 $capabilities
 
 $signalSlotDispatcher
 
 $processingFolder
 
 $processingFolders
 
 $isOnline = NULL
 
 $isDefault = FALSE
 
 $fileAndFolderNameFilters = array()
 

Additional Inherited Members

- Public Attributes inherited from TYPO3\CMS\Core\Resource\ResourceStorageInterface
const SIGNAL_PreFileAdd = 'preFileAdd'
 
const SIGNAL_PostFileAdd = 'postFileAdd'
 
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_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 DEFAULT_ProcessingFolder = '_processed_'
 

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

Author
Andreas Wolf andre.nosp@m.as.w.nosp@m.olf@t.nosp@m.ypo3.nosp@m..org
Ingmar Schlecht ingma.nosp@m.r@ty.nosp@m.po3.o.nosp@m.rg

Definition at line 57 of file ResourceStorage.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Core\Resource\ResourceStorage::__construct ( Driver\DriverInterface  $driver,
array  $storageRecord 
)

Member Function Documentation

◆ addFile()

TYPO3\CMS\Core\Resource\ResourceStorage::addFile (   $localFilePath,
Folder  $targetFolder,
  $targetFileName = '',
  $conflictMode = 'changeName' 
)

◆ addFileAndFolderNameFilter()

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

Definition at line 1327 of file ResourceStorage.php.

◆ addFileMount()

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

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 429 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceFactory\getInstance().

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

◆ addUploadedFile()

TYPO3\CMS\Core\Resource\ResourceStorage::addUploadedFile ( array  $uploadedFileData,
Folder  $targetFolder = NULL,
  $targetFileName = NULL,
  $conflictMode = 'cancel' 
)

Adds an uploaded file into the Storage. Previously in ::file_upload()

Parameters
array$uploadedFileDatacontains information about the uploaded file given by $_FILES['file1']
Folder$targetFolderthe target folder
string$targetFileNamethe file name to be written
string$conflictModepossible value are 'cancel', 'replace'
Returns
FileInterface The file object

Definition at line 1782 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\addFile(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileUploadPermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\getDefaultFolder(), TYPO3\CMS\Core\Resource\Folder\getFiles(), and TYPO3\CMS\Core\Resource\Folder\getSubfolders().

◆ assureFileAddPermissions()

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

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

Parameters
string$localFilePathDEPRECATED the temporary file name from $_FILES['file1']['tmp_name']
Folder$targetFolder
string$targetFileNamethe destination file name $_FILES['file1']['name']
Returns
void
Exceptions
Exception

Definition at line 852 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()

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

◆ assureFileDeletePermissions()

◆ assureFileMovePermissions()

◆ assureFileReadPermission()

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

◆ assureFileRenamePermissions()

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

◆ 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$localFilePaththe temporary file name from $_FILES['file1']['tmp_name']
Folder$targetFolder
string$targetFileNamethe destination file name $_FILES['file1']['name']
int$uploadedFileSize
Returns
void
Exceptions
Exception

Definition at line 883 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\assureFileAddPermissions(), and TYPO3\CMS\Core\Utility\GeneralUtility\getMaxUploadFileSize().

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

◆ assureFileWritePermissions()

◆ assureFolderCopyPermissions()

TYPO3\CMS\Core\Resource\ResourceStorage::assureFolderCopyPermissions ( FolderInterface  $folderToCopy,
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$folderToCopy
FolderInterface$targetParentFolder
Returns
void
Exceptions
Exception
Exception

Definition at line 1006 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\copyFolder().

◆ assureFolderDeletePermission()

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

Assures delete permission for given folder.

Parameters
Folder$folderIf a folder is given, mountpoints are checked. If not only user folder delete permissions are checked.
boolean$checkDeleteRecursively
Returns
void
Exceptions
Exception

Definition at line 755 of file ResourceStorage.php.

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

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 1042 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()

TYPO3\CMS\Core\Resource\ResourceStorage::assureFolderReadPermission ( Folder  $folder = NULL)
protected

◆ checkFileActionPermission()

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

Checks if a file operation (= action) is allowed on a File/Folder/Storage (= subject).

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 File List UI to check whether an action is allowed and whether action related UI elements should thus be shown (move icon, edit icon, etc.)

Parameters
string$actionaction, can be read, write, delete
FileInterface$file
Returns
bool

Definition at line 577 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\checkFileExtensionPermission(), TYPO3\CMS\Core\Resource\ResourceStorage\checkUserActionPermission(), TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier(), TYPO3\CMS\Core\Resource\ResourceInterface\getName(), TYPO3\CMS\Core\Resource\ResourceStorage\isWithinFileMountBoundaries(), and TYPO3\CMS\Core\Resource\ResourceStorage\isWritable().

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\assureFileDeletePermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileReadPermission(), TYPO3\CMS\Core\Resource\ResourceStorage\assureFileRenamePermissions(), and TYPO3\CMS\Core\Resource\ResourceStorage\assureFileWritePermissions().

◆ checkFileExtensionPermission()

◆ checkFolderActionPermission()

◆ checkUserActionPermission()

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

◆ copyFile()

TYPO3\CMS\Core\Resource\ResourceStorage::copyFile ( FileInterface  $file,
Folder  $targetFolder,
  $targetFileName = NULL,
  $conflictMode = 'renameNewFile' 
)

Previously in ::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$targetFileNamean optional destination fileName
string$conflictMode"overrideExistingFile", "renameNewFile", "cancel
Exceptions

Definition at line 1625 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileCopySignal(), TYPO3\CMS\Core\Resource\ResourceFactory\getInstance(), TYPO3\CMS\Core\Resource\ResourceStorage\getUid(), and TYPO3\CMS\Core\Resource\ResourceStorage\getUniqueName().

◆ copyFolder()

TYPO3\CMS\Core\Resource\ResourceStorage::copyFolder ( FolderInterface  $folderToCopy,
FolderInterface  $targetParentFolder,
  $newFolderName = NULL,
  $conflictMode = 'renameNewFolder' 
)

◆ 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
Returns
bool
Exceptions

Definition at line 1938 of file ResourceStorage.php.

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

◆ createFile()

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

◆ createFolder()

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

◆ deleteFile()

TYPO3\CMS\Core\Resource\ResourceStorage::deleteFile (   $fileObject)

◆ deleteFolder()

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

◆ dumpFileContents()

TYPO3\CMS\Core\Resource\ResourceStorage::dumpFileContents ( FileInterface  $file,
  $asDownload = FALSE,
  $alternativeFilename = NULL 
)

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

Parameters
FileInterface$file
bool$asDownloadIf set Content-Disposition attachment is sent, inline otherwise
string$alternativeFilenamethe filename for the download (if $asDownload is set)
Returns
void

Definition at line 1519 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

Emits the file post-add signal.

Parameters
FileInterface$file
Folder$targetFolder
Returns
void

Definition at line 2255 of file ResourceStorage.php.

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

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

◆ emitPostFileCopySignal()

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

Emits the file post-copy signal.

Parameters
FileInterface$file
Folder$targetFolder
Returns
void

Definition at line 2277 of file ResourceStorage.php.

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

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

◆ 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 2354 of file ResourceStorage.php.

References 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
Returns
void

Definition at line 2374 of file ResourceStorage.php.

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

◆ emitPostFileMoveSignal()

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

Emits the file post-move signal.

Parameters
FileInterface$file
Folder$targetFolder
Folder$originalFolder
Returns
void

Definition at line 2300 of file ResourceStorage.php.

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

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

◆ emitPostFileRenameSignal()

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

Emits the file post-rename signal.

Parameters
FileInterface$file
$targetFolder
Returns
void

Definition at line 2322 of file ResourceStorage.php.

References 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
Returns
void

Definition at line 2344 of file ResourceStorage.php.

References 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

Emits the file post-set-contents signal

Parameters
FileInterface$file
mixed$content
Returns
void

Definition at line 2385 of file ResourceStorage.php.

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

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

◆ emitPostFolderAddSignal()

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

Emits the folder post-add signal.

Parameters
Folder$folder
Returns
void

Definition at line 2406 of file ResourceStorage.php.

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

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

◆ 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
Returns
void

Definition at line 2430 of file ResourceStorage.php.

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

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

◆ emitPostFolderDeleteSignal()

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

Emits folder post-deletion signal..

Parameters
Folder$folder
Returns
void

Definition at line 2497 of file ResourceStorage.php.

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

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

◆ 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
$newName
Folder$originalFolder
Returns
void

Definition at line 2455 of file ResourceStorage.php.

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

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

◆ emitPostFolderRenameSignal()

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

Emits the folder post-rename signal.

Parameters
Folder$folder
$newName
Returns
void

Definition at line 2477 of file ResourceStorage.php.

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

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

◆ emitPreFileAddSignal()

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 2243 of file ResourceStorage.php.

References 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
Returns
void

Definition at line 2266 of file ResourceStorage.php.

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

◆ emitPreFileDeleteSignal()

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

Emits the file pre-deletion signal.

Parameters
FileInterface$file
Returns
void

Definition at line 2364 of file ResourceStorage.php.

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

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

◆ emitPreFileMoveSignal()

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

Emits the file pre-move signal.

Parameters
FileInterface$file
Folder$targetFolder
Returns
void

Definition at line 2288 of file ResourceStorage.php.

References 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

Emits the file pre-rename signal

Parameters
FileInterface$file
$targetFolder
Returns
void

Definition at line 2311 of file ResourceStorage.php.

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

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

◆ emitPreFileReplaceSignal()

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

Emits the file pre-replace signal.

Parameters
FileInterface$file
$localFilePath
Returns
void

Definition at line 2333 of file ResourceStorage.php.

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

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

◆ emitPreFolderAddSignal()

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

Emits the folder pre-add signal.

Parameters
Folder$targetFolder
string$name
Returns
void

Definition at line 2396 of file ResourceStorage.php.

References 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
Returns
void

Definition at line 2418 of file ResourceStorage.php.

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

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

◆ emitPreFolderDeleteSignal()

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

Emits the folder pre-deletion signal.

Parameters
Folder$folder
Returns
void

Definition at line 2487 of file ResourceStorage.php.

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

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

◆ 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
Returns
void

Definition at line 2442 of file ResourceStorage.php.

References 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
$newName
Returns
void

Definition at line 2466 of file ResourceStorage.php.

References 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 2508 of file ResourceStorage.php.

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

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

◆ fetchFolderListFromDriver()

TYPO3\CMS\Core\Resource\ResourceStorage::fetchFolderListFromDriver (   $path,
  $start = 0,
  $numberOfItems = 0,
array  $folderFilterCallbacks = array(),
  $recursive = FALSE 
)
Parameters
$path
int$start
int$numberOfItems
array$folderFilterCallbacks
bool$recursive
Returns
array
Deprecated:
since 6.2, will be removed 2 versions later

Definition at line 2067 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\getFolder(), TYPO3\CMS\Core\Resource\ResourceStorage\getFoldersInFolder(), and TYPO3\CMS\Core\Utility\GeneralUtility\logDeprecatedFunction().

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

◆ getCapabilities()

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

Returns the capabilities of this storage.

Returns
int
See also
CAPABILITY_* constants

Definition at line 296 of file ResourceStorage.php.

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

◆ getConfiguration()

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

Gets the configuration.

Returns
array

Definition at line 190 of file ResourceStorage.php.

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

◆ getDefaultFolder()

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

Returns the default folder where new files are stored if no other folder is given.

Returns
Folder

Definition at line 2145 of file ResourceStorage.php.

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

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

◆ getDriver()

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

Returns the driver object belonging to this storage.

Returns
Driver

Definition at line 228 of file ResourceStorage.php.

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

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

◆ getDriverType()

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

Gets the driver Type configured for this storage.

Returns
string

Definition at line 2685 of file ResourceStorage.php.

◆ getEvaluatePermissions()

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 529 of file ResourceStorage.php.

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

◆ getFile()

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

Gets a file by identifier.

Parameters
string$identifier
Returns
FileInterface

Definition at line 1257 of file ResourceStorage.php.

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

◆ getFileAndFolderNameFilters()

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

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

Returns
array

Definition at line 1311 of file ResourceStorage.php.

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

◆ getFileByIdentifier()

TYPO3\CMS\Core\Resource\ResourceStorage::getFileByIdentifier (   $identifier)

Deprecated function, don't use it. Will be removed in some later revision.

Parameters
string$identifier
Exceptions

Definition at line 253 of file ResourceStorage.php.

◆ getFileContents()

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

Get contents of a file object

Parameters
FileInterface$file
Exceptions
Exception

Definition at line 1505 of file ResourceStorage.php.

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

◆ getFileFactory()

TYPO3\CMS\Core\Resource\ResourceStorage::getFileFactory ( )
protected

◆ getFileForLocalProcessing()

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

Copies a file from the storage for local processing.

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

Definition at line 1246 of file ResourceStorage.php.

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

◆ getFileIdentifiersInFolder()

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

Definition at line 1406 of file ResourceStorage.php.

◆ getFileIndexRepository()

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

◆ getFileInfo()

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

Gets information about a file.

Parameters
FileInterface$fileObject
Returns
array

Definition at line 1272 of file ResourceStorage.php.

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

◆ getFileInfoByIdentifier()

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

Gets information about a file by its identifier.

Parameters
string$identifier
array$propertiesToExtract
Returns
array

Definition at line 1284 of file ResourceStorage.php.

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

◆ getFileList()

TYPO3\CMS\Core\Resource\ResourceStorage::getFileList (   $path,
  $start = 0,
  $numberOfItems = 0,
  $useFilters = TRUE,
  $loadIndexRecords = TRUE,
  $recursive = FALSE 
)

Returns a list of files in a given path, filtered by some custom filter methods.

See also
getUnfilteredFileList(), getFileListWithDefaultFilters()
Parameters
string$pathThe path to list
int$startThe position to start the listing; if not set or 0, start from the beginning
int$numberOfItemsThe number of items to list; if not set, return all items
bool$useFiltersIf FALSE, the list is returned without any filtering; otherwise, the filters defined for this storage are used.
bool$loadIndexRecordsIf set to TRUE, the index records for all files are loaded from the database. This can greatly improve performance of this method, especially with a lot of files.
bool$recursive
Returns
array Information about the files found.
Deprecated:
since 6.2, will be removed two versions later

Definition at line 1353 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\getFilesInFolder(), TYPO3\CMS\Core\Resource\ResourceStorage\getFolder(), and TYPO3\CMS\Core\Utility\GeneralUtility\logDeprecatedFunction().

◆ getFileMounts()

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

Returns all file mounts that are registered with this storage.

Returns
array

Definition at line 468 of file ResourceStorage.php.

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

◆ getFileProcessingService()

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

◆ getFilesInFolder()

TYPO3\CMS\Core\Resource\ResourceStorage::getFilesInFolder ( Folder  $folder,
  $start = 0,
  $maxNumberOfItems = 0,
  $useFilters = TRUE,
  $recursive = FALSE 
)

◆ getFolder()

◆ getFolderByIdentifier()

TYPO3\CMS\Core\Resource\ResourceStorage::getFolderByIdentifier (   $identifier)

Deprecated function, don't use it. Will be removed in some later revision.

Parameters
string$identifier
Exceptions

Definition at line 239 of file ResourceStorage.php.

◆ getFolderIdentifierFromFileIdentifier()

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

Definition at line 1336 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Install\Updates\FileIdentifierHashUpdate\updateIdentifierHashesForStorage().

◆ getFolderIdentifiersInFolder()

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

Definition at line 1418 of file ResourceStorage.php.

◆ getFolderList()

TYPO3\CMS\Core\Resource\ResourceStorage::getFolderList (   $path,
  $start = 0,
  $numberOfItems = 0,
  $useFilters = TRUE 
)

Returns a list of folders in a given path.

Parameters
string$pathThe path to list
int$startThe position to start the listing; if not set or 0, start from the beginning
int$numberOfItemsThe number of items to list; if not set, return all items
bool$useFiltersIf FALSE, the list is returned without any filtering; otherwise, the filters defined for this storage are used.
Returns
array Information about the folders found.
Deprecated:
since TYPO3 6.2, will be removed to versions later

Definition at line 2024 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\fetchFolderListFromDriver(), and TYPO3\CMS\Core\Utility\GeneralUtility\logDeprecatedFunction().

◆ getFoldersInFolder()

TYPO3\CMS\Core\Resource\ResourceStorage::getFoldersInFolder ( Folder  $folder,
  $start = 0,
  $maxNumberOfItems = 0,
  $useFilters = TRUE,
  $recursive = FALSE 
)

◆ getIndexer()

◆ getName()

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

Returns the name of this storage.

Returns
string

Definition at line 265 of file ResourceStorage.php.

◆ getObjectManager()

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

◆ getProcessingFolder()

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

◆ getPublicUrl()

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$resourceObjectThe file or folder object
boolean$relativeToCurrentScriptDetermines whether the URL returned should be relative to the current script, in case it is relative at all (only for the LocalDriver)
Returns
string

Definition at line 1181 of file ResourceStorage.php.

References TYPO3\CMS\Core\Utility\PathUtility\dirname(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreGeneratePublicUrlSignal(), TYPO3\CMS\Core\Resource\ResourceInterface\getIdentifier(), TYPO3\CMS\Core\Utility\PathUtility\getRelativePathTo(), TYPO3\CMS\Core\Resource\ResourceStorage\hasCapability(), TYPO3\CMS\Core\Utility\GeneralUtility\hmac(), TYPO3\CMS\Core\Resource\ResourceStorage\isOnline(), and TYPO3\CMS\Core\Utility\GeneralUtility\isValidUrl().

◆ getRole()

◆ getRootLevelFolder()

TYPO3\CMS\Core\Resource\ResourceStorage::getRootLevelFolder (   $respectFileMounts = TRUE)

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.

Parameters
bool$respectFileMounts
Returns
Folder

Definition at line 2226 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceFactory\getInstance().

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

◆ getSignalSlotDispatcher()

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

Get the SignalSlot dispatcher.

Returns

Definition at line 2569 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$signalSlotDispatcher, 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\emitPreFileDeleteSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileMoveSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileRenameSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileReplaceSignal(), 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(), and TYPO3\CMS\Core\Resource\ResourceStorage\emitPreGeneratePublicUrlSignal().

◆ getStorageRecord()

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

Gets the storage record.

Returns
array

Definition at line 208 of file ResourceStorage.php.

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

◆ getUid()

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

◆ getUniqueName()

TYPO3\CMS\Core\Resource\ResourceStorage::getUniqueName ( Folder  $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. TCEmain when files are attached to records and needs to be uniquely named in the uploads/* folders

Parameters
Folder$folder
string$theFileThe input fileName to check
bool$dontCheckForUniqueIf set the fileName is returned with the path prepended without checking whether it already existed!
Exceptions

Definition at line 2525 of file ResourceStorage.php.

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

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

◆ hasCapability()

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

Returns TRUE if this storage has the given capability.

Parameters
int$capabilityA 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\isBrowsable(), TYPO3\CMS\Core\Resource\ResourceStorage\isPublic(), and TYPO3\CMS\Core\Resource\ResourceStorage\isWritable().

◆ hasChildren()

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

Tells whether there are children in this storage.

Returns
bool

Definition at line 283 of file ResourceStorage.php.

◆ hasFile()

◆ hasFileInFolder()

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 1492 of file ResourceStorage.php.

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

◆ hasFolder()

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

Returns TRUE if the specified folder exists.

Parameters
string$identifier
Returns
bool

Definition at line 2091 of file ResourceStorage.php.

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

◆ hasFolderInFolder()

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 2103 of file ResourceStorage.php.

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

◆ hashFile()

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

Creates a (cryptographic) hash for a file.

Parameters
FileInterface$fileObject
string$hash
Returns
string

Definition at line 1139 of file ResourceStorage.php.

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

◆ hashFileByIdentifier()

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

Creates a (cryptographic) hash for a fileIdentifier.

Parameters
string$fileIdentifier
string$hash
Returns
string

Definition at line 1151 of file ResourceStorage.php.

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

◆ isBrowsable()

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

Returns TRUE if this storage is browsable by a (backend) user of TYPO3.

Returns
bool

Definition at line 337 of file ResourceStorage.php.

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

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

◆ isDefault()

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

◆ isOnline()

◆ isProcessingFolder()

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 1474 of file ResourceStorage.php.

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

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

◆ isPublic()

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 318 of file ResourceStorage.php.

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

◆ isWithinFileMountBoundaries()

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$subjectfile or folder
bool$checkWriteAccessIf 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 480 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(), and TYPO3\CMS\Core\Resource\ResourceStorage\checkFolderActionPermission().

◆ isWithinFolder()

TYPO3\CMS\Core\Resource\ResourceStorage::isWithinFolder ( Folder  $folder,
ResourceInterface  $resource 
)

◆ isWithinProcessingFolder()

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 2189 of file ResourceStorage.php.

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

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

◆ isWritable()

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 328 of file ResourceStorage.php.

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

Referenced by TYPO3\CMS\Core\Resource\ResourceStorage\checkFileActionPermission(), and TYPO3\CMS\Core\Resource\ResourceStorage\checkFolderActionPermission().

◆ 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.

Returns
void

Definition at line 392 of file ResourceStorage.php.

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

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

◆ 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.

Returns
void

Definition at line 409 of file ResourceStorage.php.

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

◆ moveFile()

TYPO3\CMS\Core\Resource\ResourceStorage::moveFile (   $file,
  $targetFolder,
  $targetFileName = NULL,
  $conflictMode = 'renameNewFile' 
)

Moves a $file into a $targetFolder the target folder has to be part of this storage

previously in ::func_move()

Parameters
FileInterface$file
Folder$targetFolder
string$targetFileNamean optional destination fileName
string$conflictMode"overrideExistingFile", "renameNewFile", "cancel
Exceptions
Exception

Definition at line 1669 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\assureFileMovePermissions(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPostFileMoveSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\emitPreFileMoveSignal(), TYPO3\CMS\Core\Resource\ResourceStorage\getIndexer(), TYPO3\CMS\Core\Resource\ResourceStorage\getUid(), and TYPO3\CMS\Core\Resource\ResourceStorage\getUniqueName().

◆ moveFolder()

TYPO3\CMS\Core\Resource\ResourceStorage::moveFolder ( Folder  $folderToMove,
Folder  $targetParentFolder,
  $newFolderName = NULL,
  $conflictMode = 'renameNewFolder' 
)

◆ 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
Returns
bool
Exceptions

Definition at line 1883 of file ResourceStorage.php.

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

◆ processFile()

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$fileObjectThe file object
string$context
array$configuration
Returns
ProcessedFile
Exceptions

Definition at line 1230 of file ResourceStorage.php.

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

◆ renameFile()

TYPO3\CMS\Core\Resource\ResourceStorage::renameFile (   $file,
  $targetFileName 
)

◆ renameFolder()

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

◆ replaceFile()

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

◆ resetFileAndFolderNameFiltersToDefault()

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

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

Returns
void

Definition at line 1302 of file ResourceStorage.php.

References $GLOBALS.

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

◆ setConfiguration()

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

Sets the configuration.

Parameters
array$configuration

Definition at line 199 of file ResourceStorage.php.

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

◆ setDefault()

TYPO3\CMS\Core\Resource\ResourceStorage::setDefault (   $isDefault)
Parameters
bool$isDefault
Returns
void

Definition at line 2702 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$isDefault, and TYPO3\CMS\Core\Resource\ResourceStorage\isDefault().

◆ setDriver()

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 218 of file ResourceStorage.php.

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

◆ 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
boolean$evaluatePermissions

Definition at line 519 of file ResourceStorage.php.

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

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

◆ setFileAndFolderNameFilters()

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

Definition at line 1319 of file ResourceStorage.php.

◆ setFileContents()

TYPO3\CMS\Core\Resource\ResourceStorage::setFileContents ( AbstractFile  $file,
  $contents 
)

◆ setUserPermissions()

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

Sets the user permissions of the storage.

Parameters
array$userPermissions
Returns
void

Definition at line 539 of file ResourceStorage.php.

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

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

◆ unsetFileAndFolderNameFilters()

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

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

Returns
void

Definition at line 1293 of file ResourceStorage.php.

◆ updateProcessedFile()

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

Updates a processed file with a new file from the local filesystem.

Parameters
string$localFilePath
ProcessedFile$processedFile
Folder$processingFolder
Returns
FileInterface
Exceptions

Definition at line 1118 of file ResourceStorage.php.

References TYPO3\CMS\Core\Resource\ResourceStorage\$processingFolder, TYPO3\CMS\Core\Resource\ProcessedFile\getName(), TYPO3\CMS\Core\Resource\ResourceStorage\getProcessingFolder(), and TYPO3\CMS\Core\Resource\AbstractFile\setIdentifier().

◆ usesCaseSensitiveIdentifiers()

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

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

Returns
bool

Definition at line 346 of file ResourceStorage.php.

Referenced by TYPO3\CMS\Install\Updates\FileIdentifierHashUpdate\updateIdentifierHashesForStorage().

Member Data Documentation

◆ $capabilities

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

◆ $configuration

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

◆ $driver

◆ $evaluatePermissions

TYPO3\CMS\Core\Resource\ResourceStorage::$evaluatePermissions = FALSE
protected

◆ $fileAndFolderNameFilters

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

◆ $fileMounts

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

◆ $fileProcessingService

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

◆ $isDefault

TYPO3\CMS\Core\Resource\ResourceStorage::$isDefault = FALSE
protected

◆ $isOnline

TYPO3\CMS\Core\Resource\ResourceStorage::$isOnline = NULL
protected

◆ $processingFolder

◆ $processingFolders

TYPO3\CMS\Core\Resource\ResourceStorage::$processingFolders
protected

◆ $signalSlotDispatcher

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

◆ $storageRecord

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

◆ $userPermissions

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