MediaWiki
1.28.0
|
Proxy backend that manages file layout rewriting for FileRepo. More...
Public Member Functions | |
__construct (array $config) | |
clearCache (array $paths=null) | |
concatenate (array $params) | |
directoryExists (array $params) | |
fileExists (array $params) | |
getBackendPath ($path, $latest=true) | |
Translate a legacy "title" path to it's "sha1" counterpart. More... | |
getBackendPaths (array $paths, $latest=true) | |
Translate legacy "title" paths to their "sha1" counterparts. More... | |
getDirectoryList (array $params) | |
getFeatures () | |
getFileContentsMulti (array $params) | |
getFileHttpUrl (array $params) | |
getFileList (array $params) | |
getFileProps (array $params) | |
getFileSha1Base36 (array $params) | |
getFileSize (array $params) | |
getFileStat (array $params) | |
getFileTimestamp (array $params) | |
getFileXAttributes (array $params) | |
getInternalBackend () | |
Get the underlying FileBackend that is being wrapped. More... | |
getLocalCopyMulti (array $params) | |
getLocalReferenceMulti (array $params) | |
getPathForSHA1 ($sha1) | |
Get the ultimate original storage path for a file. More... | |
getScopedLocksForOps (array $ops, StatusValue $status) | |
preloadCache (array $paths) | |
preloadFileStat (array $params) | |
streamFile (array $params) | |
Public Member Functions inherited from FileBackend | |
__construct (array $config) | |
Create a new backend instance from configuration. More... | |
clean (array $params) | |
Delete a storage directory if it is empty. More... | |
clearCache (array $paths=null) | |
Invalidate any in-process file stat and property cache. More... | |
concatenate (array $params) | |
Concatenate a list of storage files into a single file system file. More... | |
copy (array $params, array $opts=[]) | |
Performs a single copy operation. More... | |
create (array $params, array $opts=[]) | |
Performs a single create operation. More... | |
delete (array $params, array $opts=[]) | |
Performs a single delete operation. More... | |
describe (array $params, array $opts=[]) | |
Performs a single describe operation. More... | |
directoryExists (array $params) | |
Check if a directory exists at a given storage path. More... | |
doOperation (array $op, array $opts=[]) | |
Same as doOperations() except it takes a single operation. More... | |
doOperations (array $ops, array $opts=[]) | |
This is the main entry point into the backend for write operations. More... | |
doQuickOperation (array $op) | |
Same as doQuickOperations() except it takes a single operation. More... | |
doQuickOperations (array $ops, array $opts=[]) | |
Perform a set of independent file operations on some files. More... | |
fileExists (array $params) | |
Check if a file exists at a storage path in the backend. More... | |
getContainerStoragePath ($container) | |
Get the storage path for the given container for this backend. More... | |
getDirectoryList (array $params) | |
Get an iterator to list all directories under a storage directory. More... | |
getDomainId () | |
Get the domain identifier used for this backend (possibly empty). More... | |
getFeatures () | |
Get the a bitfield of extra features supported by the backend medium. More... | |
getFileContents (array $params) | |
Get the contents of a file at a storage path in the backend. More... | |
getFileContentsMulti (array $params) | |
Like getFileContents() except it takes an array of storage paths and returns a map of storage paths to strings (or null on failure). More... | |
getFileHttpUrl (array $params) | |
Return an HTTP URL to a given file that requires no authentication to use. More... | |
getFileList (array $params) | |
Get an iterator to list all stored files under a storage directory. More... | |
getFileProps (array $params) | |
Get the properties of the file at a storage path in the backend. More... | |
getFileSha1Base36 (array $params) | |
Get a SHA-1 hash of the file at a storage path in the backend. More... | |
getFileSize (array $params) | |
Get the size (bytes) of a file at a storage path in the backend. More... | |
getFileStat (array $params) | |
Get quick information about a file at a storage path in the backend. More... | |
getFileTimestamp (array $params) | |
Get the last-modified timestamp of the file at a storage path. More... | |
getFileXAttributes (array $params) | |
Get metadata about a file at a storage path in the backend. More... | |
getJournal () | |
Get the file journal object for this backend. More... | |
getLocalCopy (array $params) | |
Get a local copy on disk of the file at a storage path in the backend. More... | |
getLocalCopyMulti (array $params) | |
Like getLocalCopy() except it takes an array of storage paths and returns a map of storage paths to TempFSFile objects (or null on failure). More... | |
getLocalReference (array $params) | |
Returns a file system file, identical to the file at a storage path. More... | |
getLocalReferenceMulti (array $params) | |
Like getLocalReference() except it takes an array of storage paths and returns a map of storage paths to FSFile objects (or null on failure). More... | |
getName () | |
Get the unique backend name. More... | |
getReadOnlyReason () | |
Get an explanatory message if this backend is read-only. More... | |
getRootStoragePath () | |
Get the root storage path of this backend. More... | |
getScopedFileLocks (array $paths, $type, StatusValue $status, $timeout=0) | |
Lock the files at the given storage paths in the backend. More... | |
getScopedLocksForOps (array $ops, StatusValue $status) | |
Get an array of scoped locks needed for a batch of file operations. More... | |
getTopDirectoryList (array $params) | |
Same as FileBackend::getDirectoryList() except only lists directories that are immediately under the given directory. More... | |
getTopFileList (array $params) | |
Same as FileBackend::getFileList() except only lists files that are immediately under the given directory. More... | |
getWikiId () | |
Alias to getDomainId() More... | |
hasFeatures ($bitfield) | |
Check if the backend medium supports a field of extra features. More... | |
isReadOnly () | |
Check if this backend is read-only. More... | |
lockFiles (array $paths, $type, $timeout=0) | |
Lock the files at the given storage paths in the backend. More... | |
move (array $params, array $opts=[]) | |
Performs a single move operation. More... | |
preloadCache (array $paths) | |
Preload persistent file stat cache and property cache into in-process cache. More... | |
preloadFileStat (array $params) | |
Preload file stat information (concurrently if possible) into in-process cache. More... | |
prepare (array $params) | |
Prepare a storage directory for usage. More... | |
publish (array $params) | |
Remove measures to block web access to a storage directory and the container it belongs to. More... | |
quickCopy (array $params) | |
Performs a single quick copy operation. More... | |
quickCreate (array $params) | |
Performs a single quick create operation. More... | |
quickDelete (array $params) | |
Performs a single quick delete operation. More... | |
quickDescribe (array $params) | |
Performs a single quick describe operation. More... | |
quickMove (array $params) | |
Performs a single quick move operation. More... | |
quickStore (array $params) | |
Performs a single quick store operation. More... | |
secure (array $params) | |
Take measures to block web access to a storage directory and the container it belongs to. More... | |
setLogger (LoggerInterface $logger) | |
store (array $params, array $opts=[]) | |
Performs a single store operation. More... | |
streamFile (array $params) | |
Stream the file at a storage path in the backend. More... | |
unlockFiles (array $paths, $type) | |
Unlock the files at the given storage paths in the backend. More... | |
Protected Member Functions | |
doClean (array $params) | |
doOperationsInternal (array $ops, array $opts) | |
doPrepare (array $params) | |
doPublish (array $params) | |
doQuickOperationsInternal (array $ops) | |
doSecure (array $params) | |
getDB ($index) | |
Get a connection to the repo file registry DB. More... | |
mungeOpPaths (array $ops) | |
Translate legacy "title" source paths to their "sha1" counterparts. More... | |
translateArrayResults ($function, array $params) | |
Translates paths when the backend function returns results keyed by paths. More... | |
translateSrcParams ($function, array $params) | |
Translates paths found in the "src" or "srcs" keys of a params array. More... | |
Protected Member Functions inherited from FileBackend | |
doClean (array $params) | |
doOperationsInternal (array $ops, array $opts) | |
doPrepare (array $params) | |
doPublish (array $params) | |
doQuickOperationsInternal (array $ops) | |
doSecure (array $params) | |
getScopedPHPBehaviorForOps () | |
Enter file operation scope. More... | |
newStatus () | |
Yields the result of the status wrapper callback on either: More... | |
resetOutputBuffer () | |
resolveFSFileObjects (array $ops) | |
Convert FSFile 'src' paths to string paths (with an 'srcRef' field set to the FSFile) More... | |
scopedProfileSection ($section) | |
wrapStatus (StatusValue $sv) | |
Protected Attributes | |
FileBackend | $backend |
Closure | $dbHandleFunc |
DBConnRef[] | $dbs |
string | $repoName |
ProcessCacheLRU | $resolvedPathCache |
Protected Attributes inherited from FileBackend | |
int | $concurrency |
How many operations can be done in parallel. More... | |
string | $domainId |
Unique domain name. More... | |
FileJournal | $fileJournal |
LockManager | $lockManager |
LoggerInterface | $logger |
string | $name |
Unique backend name. More... | |
callable | $obResetFunc |
string | $parallelize |
When to do operations in parallel. More... | |
object string | $profiler |
Class name or object With profileIn/profileOut methods. More... | |
string | $readOnly |
Read-only explanation message. More... | |
callable | $statusWrapper |
callable | $streamMimeFunc |
string | $tmpDirectory |
Temporary file directory. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from FileBackend | |
static | extensionFromPath ($path, $case= 'lowercase') |
Get the final extension from a storage or FS path. More... | |
static | isPathTraversalFree ($path) |
Check if a relative path has no directory traversals. More... | |
static | isStoragePath ($path) |
Check if a given path is a "mwstore://" path. More... | |
static | makeContentDisposition ($type, $filename= '') |
Build a Content-Disposition header value per RFC 6266. More... | |
static | normalizeStoragePath ($storagePath) |
Normalize a storage path by cleaning up directory separators. More... | |
static | parentStoragePath ($storagePath) |
Get the parent storage directory of a storage path. More... | |
static | splitStoragePath ($storagePath) |
Split a storage path into a backend name, a container name, and a relative file path. More... | |
Public Attributes inherited from FileBackend | |
const | ATTR_HEADERS = 1 |
Bitfield flags for supported features. More... | |
const | ATTR_METADATA = 2 |
const | ATTR_UNICODE_PATHS = 4 |
Static Protected Member Functions inherited from FileBackend | |
static | normalizeContainerPath ($path) |
Validate and normalize a relative storage path. More... | |
Proxy backend that manages file layout rewriting for FileRepo.
LocalRepo may be configured to store files under their title names or by SHA-1. This acts as a shim in the latter case, providing backwards compatability for most callers. All "public"/"deleted" zone files actually go in an "original" container and are never changed.
This requires something like thumb_handler.php and img_auth.php for client viewing of files.
Definition at line 40 of file FileBackendDBRepoWrapper.php.
FileBackendDBRepoWrapper::__construct | ( | array | $config | ) |
Definition at line 52 of file FileBackendDBRepoWrapper.php.
References FileBackend\getName(), and FileBackend\getWikiId().
FileBackendDBRepoWrapper::clearCache | ( | array | $paths = null | ) |
Definition at line 248 of file FileBackendDBRepoWrapper.php.
FileBackendDBRepoWrapper::concatenate | ( | array | $params | ) |
Definition at line 172 of file FileBackendDBRepoWrapper.php.
References translateSrcParams().
FileBackendDBRepoWrapper::directoryExists | ( | array | $params | ) |
Definition at line 232 of file FileBackendDBRepoWrapper.php.
|
protected |
Definition at line 168 of file FileBackendDBRepoWrapper.php.
Definition at line 148 of file FileBackendDBRepoWrapper.php.
References mungeOpPaths().
|
protected |
Definition at line 156 of file FileBackendDBRepoWrapper.php.
|
protected |
Definition at line 164 of file FileBackendDBRepoWrapper.php.
|
protected |
Definition at line 152 of file FileBackendDBRepoWrapper.php.
References mungeOpPaths().
|
protected |
Definition at line 160 of file FileBackendDBRepoWrapper.php.
FileBackendDBRepoWrapper::fileExists | ( | array | $params | ) |
Definition at line 176 of file FileBackendDBRepoWrapper.php.
References translateSrcParams().
FileBackendDBRepoWrapper::getBackendPath | ( | $path, | |
$latest = true |
|||
) |
Translate a legacy "title" path to it's "sha1" counterpart.
E.g. mwstore://local-backend/local-public/a/ab/<name>.jpg => mwstore://local-backend/local-original/x/y/z/<sha1>.jpg
string | $path | |
bool | $latest |
Definition at line 83 of file FileBackendDBRepoWrapper.php.
References $path, and getBackendPaths().
Referenced by mungeOpPaths(), and translateSrcParams().
Translate legacy "title" paths to their "sha1" counterparts.
E.g. mwstore://local-backend/local-public/a/ab/<name>.jpg => mwstore://local-backend/local-original/x/y/z/<sha1>.jpg
array | $paths | |
bool | $latest |
Definition at line 98 of file FileBackendDBRepoWrapper.php.
References FileBackend\$name, $path, $res, as, DB_MASTER, DB_REPLICA, getDB(), getPathForSHA1(), list, and FileBackend\splitStoragePath().
Referenced by getBackendPath(), mungeOpPaths(), preloadCache(), translateArrayResults(), and translateSrcParams().
|
protected |
Get a connection to the repo file registry DB.
integer | $index |
Definition at line 287 of file FileBackendDBRepoWrapper.php.
References $dbHandleFunc.
Referenced by getBackendPaths().
FileBackendDBRepoWrapper::getDirectoryList | ( | array | $params | ) |
Definition at line 236 of file FileBackendDBRepoWrapper.php.
FileBackendDBRepoWrapper::getFeatures | ( | ) |
Definition at line 244 of file FileBackendDBRepoWrapper.php.
FileBackendDBRepoWrapper::getFileContentsMulti | ( | array | $params | ) |
Definition at line 216 of file FileBackendDBRepoWrapper.php.
References translateArrayResults().
FileBackendDBRepoWrapper::getFileHttpUrl | ( | array | $params | ) |
Definition at line 228 of file FileBackendDBRepoWrapper.php.
References translateSrcParams().
FileBackendDBRepoWrapper::getFileList | ( | array | $params | ) |
Definition at line 240 of file FileBackendDBRepoWrapper.php.
FileBackendDBRepoWrapper::getFileProps | ( | array | $params | ) |
Definition at line 200 of file FileBackendDBRepoWrapper.php.
References translateSrcParams().
FileBackendDBRepoWrapper::getFileSha1Base36 | ( | array | $params | ) |
Definition at line 196 of file FileBackendDBRepoWrapper.php.
References translateSrcParams().
FileBackendDBRepoWrapper::getFileSize | ( | array | $params | ) |
Definition at line 184 of file FileBackendDBRepoWrapper.php.
References translateSrcParams().
FileBackendDBRepoWrapper::getFileStat | ( | array | $params | ) |
Definition at line 188 of file FileBackendDBRepoWrapper.php.
References translateSrcParams().
FileBackendDBRepoWrapper::getFileTimestamp | ( | array | $params | ) |
Definition at line 180 of file FileBackendDBRepoWrapper.php.
References translateSrcParams().
FileBackendDBRepoWrapper::getFileXAttributes | ( | array | $params | ) |
Definition at line 192 of file FileBackendDBRepoWrapper.php.
References translateSrcParams().
FileBackendDBRepoWrapper::getInternalBackend | ( | ) |
Get the underlying FileBackend that is being wrapped.
Definition at line 69 of file FileBackendDBRepoWrapper.php.
References $backend.
FileBackendDBRepoWrapper::getLocalCopyMulti | ( | array | $params | ) |
Definition at line 224 of file FileBackendDBRepoWrapper.php.
References translateArrayResults().
FileBackendDBRepoWrapper::getLocalReferenceMulti | ( | array | $params | ) |
Definition at line 220 of file FileBackendDBRepoWrapper.php.
References translateArrayResults().
FileBackendDBRepoWrapper::getPathForSHA1 | ( | $sha1 | ) |
Get the ultimate original storage path for a file.
Use this when putting a new file into the system
string | $sha1 | File SHA-1 base36 |
Definition at line 273 of file FileBackendDBRepoWrapper.php.
Referenced by getBackendPaths().
FileBackendDBRepoWrapper::getScopedLocksForOps | ( | array | $ops, |
StatusValue | $status | ||
) |
Definition at line 261 of file FileBackendDBRepoWrapper.php.
|
protected |
Translate legacy "title" source paths to their "sha1" counterparts.
This leaves destination paths alone since we don't want those to mutate
array | $ops |
Definition at line 345 of file FileBackendDBRepoWrapper.php.
References as, getBackendPath(), and getBackendPaths().
Referenced by doOperationsInternal(), and doQuickOperationsInternal().
FileBackendDBRepoWrapper::preloadCache | ( | array | $paths | ) |
Definition at line 252 of file FileBackendDBRepoWrapper.php.
References getBackendPaths().
FileBackendDBRepoWrapper::preloadFileStat | ( | array | $params | ) |
Definition at line 257 of file FileBackendDBRepoWrapper.php.
References translateSrcParams().
FileBackendDBRepoWrapper::streamFile | ( | array | $params | ) |
Definition at line 204 of file FileBackendDBRepoWrapper.php.
References $type, StreamFile\contentTypeFromPath(), and translateSrcParams().
|
protected |
Translates paths when the backend function returns results keyed by paths.
string | $function | |
array | $params |
Definition at line 322 of file FileBackendDBRepoWrapper.php.
References $path, as, and getBackendPaths().
Referenced by getFileContentsMulti(), getLocalCopyMulti(), and getLocalReferenceMulti().
|
protected |
Translates paths found in the "src" or "srcs" keys of a params array.
string | $function | |
array | $params |
Definition at line 301 of file FileBackendDBRepoWrapper.php.
References getBackendPath(), and getBackendPaths().
Referenced by concatenate(), fileExists(), getFileHttpUrl(), getFileProps(), getFileSha1Base36(), getFileSize(), getFileStat(), getFileTimestamp(), getFileXAttributes(), preloadFileStat(), and streamFile().
|
protected |
Definition at line 42 of file FileBackendDBRepoWrapper.php.
Referenced by getInternalBackend().
|
protected |
Definition at line 46 of file FileBackendDBRepoWrapper.php.
Referenced by getDB().
|
protected |
Definition at line 50 of file FileBackendDBRepoWrapper.php.
|
protected |
Definition at line 44 of file FileBackendDBRepoWrapper.php.
|
protected |
Definition at line 48 of file FileBackendDBRepoWrapper.php.