|
MediaWiki master
|
A foreign repository with an accessible MediaWiki database. More...
Inherits MediaWiki\FileRepo\LocalRepo, and MediaWiki\FileRepo\IForeignRepoWithDB.

Public Member Functions | ||||||||||||||||
| __construct ( $info) | ||||||||||||||||
| getBlobStore () | ||||||||||||||||
| Get a BlobStore for storing and retrieving large metadata, or null if that can't be done. | ||||||||||||||||
| getPrimaryDB () | ||||||||||||||||
Get a connection to the primary DB.
| ||||||||||||||||
| getReplicaDB () | ||||||||||||||||
Get a connection to the replica DB.
| ||||||||||||||||
Public Member Functions inherited from MediaWiki\FileRepo\LocalRepo | ||||||||||||||||
| __construct (?array $info=null) | ||||||||||||||||
| checkRedirect ( $title) | ||||||||||||||||
| Checks if there is a redirect named as $title. | ||||||||||||||||
| cleanupBatch (array $files, $flags=0) | ||||||||||||||||
Deletes a batch of files.Each file can be a (zone, rel) pair, virtual url, storage path. It will try to delete each file, but ignores any errors that may occur.
| ||||||||||||||||
| cleanupDeletedBatch (array $storageKeys) | ||||||||||||||||
| Delete files in the deleted directory if they are not referenced in the filearchive table. | ||||||||||||||||
| delete ( $srcRel, $archiveRel) | ||||||||||||||||
Move a file to the deletion archive.If no valid deletion archive exists, this may either delete the file or throw an exception, depending on the preference of the repository
| ||||||||||||||||
| deleteBatch (array $sourceDestPairs) | ||||||||||||||||
Move a group of files to the deletion archive.If no valid deletion archive is configured, this may either delete the file or throw an exception, depending on the preference of the repository.The overwrite policy is determined by the repository – currently LocalRepo assumes a naming scheme in the deleted zone based on content hash, as opposed to the public zone which is assumed to be unique.
| ||||||||||||||||
| findBySha1 ( $hash) | ||||||||||||||||
| Get an array or iterator of file objects for files that have a given SHA-1 content hash. | ||||||||||||||||
| findBySha1s (array $hashes) | ||||||||||||||||
| Get an array of arrays or iterators of file objects for files that have the given SHA-1 content hashes. | ||||||||||||||||
| findFiles (array $items, $flags=0) | ||||||||||||||||
Find many files at once.
$findItem = [ 'title' => $title, 'private' => true ]; $findBatch = [ $findItem ]; $repo->findFiles( $findBatch );No title should appear in $items twice, as the result use titles as keys
| ||||||||||||||||
| findFilesByPrefix ( $prefix, $limit) | ||||||||||||||||
| Return an array of files where the name starts with $prefix. | ||||||||||||||||
| getSharedCacheKey ( $kClassSuffix,... $components) | ||||||||||||||||
Get a global, repository-qualified, WAN cache key.This might be called from either the site context of the wiki that owns the repo or the site context of another wiki that simply has access to the repo. This returns false if the repository's cache is not accessible from the current site context.
| ||||||||||||||||
| getSplitMetadataThreshold () | ||||||||||||||||
| Get the threshold above which metadata items should be split into separate storage, or null if no splitting should be done. | ||||||||||||||||
| getUploadStash (?UserIdentity $user=null) | ||||||||||||||||
| Get an UploadStash associated with this repo. | ||||||||||||||||
| invalidateImageRedirect ( $title) | ||||||||||||||||
| Invalidates image redirect cache related to that image. | ||||||||||||||||
| isJsonMetadataEnabled () | ||||||||||||||||
| Returns true if files should store metadata in JSON format. | ||||||||||||||||
| isMetadataReserializeEnabled () | ||||||||||||||||
| isMetadataUpdateEnabled () | ||||||||||||||||
| isSplitMetadataEnabled () | ||||||||||||||||
| Returns true if files should split up large metadata, storing parts of it in the BlobStore. | ||||||||||||||||
| newFileFromRow ( $row) | ||||||||||||||||
| newFromArchiveName ( $title, $archiveName) | ||||||||||||||||
| publish ( $src, $dstRel, $archiveRel, $flags=0, array $options=[]) | ||||||||||||||||
Copy or move a file either from a storage path, virtual URL, or file system path, into this repository at the specified destination location.Returns a Status object. On success, the value contains "new" or "archived", to indicate whether the file was new with that name.Using FSFile/TempFSFile can improve performance via caching. Using TempFSFile can further improve performance by signalling that it is safe to touch the source file or write extended attribute metadata to it directly.Options to $options include:
| ||||||||||||||||
| publishBatch (array $ntuples, $flags=0) | ||||||||||||||||
Publish a batch of files.
| ||||||||||||||||
| store ( $srcPath, $dstZone, $dstRel, $flags=0) | ||||||||||||||||
Store a file to a given destination.Using FSFile/TempFSFile can improve performance via caching. Using TempFSFile can further improve performance by signalling that it is safe to touch the source file or write extended attribute metadata to it directly.
| ||||||||||||||||
| storeBatch (array $triplets, $flags=0) | ||||||||||||||||
Store a batch of files.
| ||||||||||||||||
Public Member Functions inherited from MediaWiki\FileRepo\FileRepo | ||||||||||||||||
| addShellboxInputFile (BoxedCommand $command, string $boxedName, string $virtualUrl) | ||||||||||||||||
| Add a file to a Shellbox command as an input file. | ||||||||||||||||
| backendSupportsUnicodePaths () | ||||||||||||||||
| canTransformLocally () | ||||||||||||||||
| Returns true if the repository can transform files locally. | ||||||||||||||||
| canTransformVia404 () | ||||||||||||||||
| Returns true if the repository can transform files via a 404 handler. | ||||||||||||||||
| cleanDir ( $dir) | ||||||||||||||||
| Deletes a directory if empty. | ||||||||||||||||
| concatenate (array $srcPaths, $dstPath, $flags=0) | ||||||||||||||||
| Concatenate a list of temporary files into a target file location. | ||||||||||||||||
| enumFiles ( $callback) | ||||||||||||||||
| Call a callback function for every public regular file in the repository. | ||||||||||||||||
| fileExists ( $file) | ||||||||||||||||
| Checks existence of a file. | ||||||||||||||||
| fileExistsBatch (array $files) | ||||||||||||||||
| Checks existence of an array of files. | ||||||||||||||||
| findFile ( $title, $options=[]) | ||||||||||||||||
| Find an instance of the named file created at the specified time Returns false if the file does not exist. | ||||||||||||||||
| findFileFromKey ( $sha1, $options=[]) | ||||||||||||||||
| Find an instance of the file with this key, created at the specified time Returns false if the file does not exist. | ||||||||||||||||
| freeTemp ( $virtualUrl) | ||||||||||||||||
| Remove a temporary file or mark it for garbage collection. | ||||||||||||||||
| getBackend () | ||||||||||||||||
| Get the file backend instance. | ||||||||||||||||
| getDeletedHashPath ( $key) | ||||||||||||||||
| Get a relative path for a deletion archive key, e.g. | ||||||||||||||||
| getDescriptionRenderUrl ( $name, $lang=null) | ||||||||||||||||
| Get the URL of the content-only fragment of the description page. | ||||||||||||||||
| getDescriptionStylesheetUrl () | ||||||||||||||||
| Get the URL of the stylesheet to apply to description pages. | ||||||||||||||||
| getDescriptionUrl ( $name) | ||||||||||||||||
| Get the URL of an image description page. | ||||||||||||||||
| getDisplayName () | ||||||||||||||||
| Get the human-readable name of the repo. | ||||||||||||||||
| getFileProps ( $virtualUrl) | ||||||||||||||||
| Get properties of a file with a given virtual URL/storage path. | ||||||||||||||||
| getFileSha1 ( $virtualUrl) | ||||||||||||||||
| Get the sha1 (base 36) of a file with a given virtual URL/storage path. | ||||||||||||||||
| getFileSize ( $virtualUrl) | ||||||||||||||||
| Get the size of a file with a given virtual URL/storage path. | ||||||||||||||||
| getFileTimestamp ( $virtualUrl) | ||||||||||||||||
| Get the timestamp of a file with a given virtual URL/storage path. | ||||||||||||||||
| getHashLevels () | ||||||||||||||||
| Get the number of hash directory levels. | ||||||||||||||||
| getHashPath ( $name) | ||||||||||||||||
| Get a relative path including trailing slash, e.g. | ||||||||||||||||
| getInfo () | ||||||||||||||||
| Return information about the repository. | ||||||||||||||||
| getLocalCacheKey ( $kClassSuffix,... $components) | ||||||||||||||||
| Get a site-local, repository-qualified, WAN cache key. | ||||||||||||||||
| getLocalCopy ( $virtualUrl) | ||||||||||||||||
| Get a local FS copy of a file with a given virtual URL/storage path. | ||||||||||||||||
| getLocalReference ( $virtualUrl) | ||||||||||||||||
| Get a local FS file with a given virtual URL/storage path. | ||||||||||||||||
| getName () | ||||||||||||||||
| Get the name of this repository, as specified by $info['name]' to the constructor. | ||||||||||||||||
| getNameFromTitle ( $title) | ||||||||||||||||
| Get the name of a file from its title. | ||||||||||||||||
| getReadOnlyReason () | ||||||||||||||||
| Get an explanatory message if this repo is read-only. | ||||||||||||||||
| getRootDirectory () | ||||||||||||||||
| Get the public zone root storage directory of the repository. | ||||||||||||||||
| getTempHashPath ( $suffix) | ||||||||||||||||
| Get a relative path including trailing slash, e.g. | ||||||||||||||||
| getTempRepo () | ||||||||||||||||
| Get a temporary private FileRepo associated with this repo. | ||||||||||||||||
| getThumbProxySecret () | ||||||||||||||||
| Get the secret key for the proxied thumb service. | ||||||||||||||||
| getThumbProxyUrl () | ||||||||||||||||
| Get the URL thumb.php requests are being proxied to. | ||||||||||||||||
| getThumbScriptUrl () | ||||||||||||||||
| Get the URL of thumb.php. | ||||||||||||||||
| getVirtualUrl ( $suffix=false) | ||||||||||||||||
| Get a URL referring to this repository, with the private mwrepo protocol. | ||||||||||||||||
| getZonePath ( $zone) | ||||||||||||||||
| Get the storage path corresponding to one of the zones. | ||||||||||||||||
| getZoneUrl ( $zone, $ext=null) | ||||||||||||||||
| Get the URL corresponding to one of the four basic zones. | ||||||||||||||||
| hasSha1Storage () | ||||||||||||||||
| Returns whether or not storage is SHA-1 based. | ||||||||||||||||
| isLocal () | ||||||||||||||||
| Returns true if this the local file repository. | ||||||||||||||||
| makeUrl ( $query='', $entry='index') | ||||||||||||||||
| Make an url to this repo. | ||||||||||||||||
| nameForThumb ( $name) | ||||||||||||||||
| Get the portion of the file that contains the origin file name. | ||||||||||||||||
| newFatal ( $message,... $parameters) | ||||||||||||||||
| Create a new fatal error. | ||||||||||||||||
| newFile ( $title, $time=false) | ||||||||||||||||
| Create a new File object from the local repository. | ||||||||||||||||
| newGood ( $value=null) | ||||||||||||||||
| Create a new good result. | ||||||||||||||||
| paranoidClean ( $param) | ||||||||||||||||
| Path disclosure protection function. | ||||||||||||||||
| passThrough ( $param) | ||||||||||||||||
| Path disclosure protection function. | ||||||||||||||||
| quickCleanDir ( $dir) | ||||||||||||||||
| Deletes a directory if empty. | ||||||||||||||||
| quickImport ( $src, $dst, $options=null) | ||||||||||||||||
| Import a file from the local file system into the repo. | ||||||||||||||||
| quickImportBatch (array $triples) | ||||||||||||||||
| Import a batch of files from the local file system into the repo. | ||||||||||||||||
| quickPurge ( $path) | ||||||||||||||||
| Purge a file from the repo. | ||||||||||||||||
| quickPurgeBatch (array $paths) | ||||||||||||||||
| Purge a batch of files from the repo. | ||||||||||||||||
| resolveVirtualUrl ( $url) | ||||||||||||||||
| Get the backend storage path corresponding to a virtual URL. | ||||||||||||||||
| storeTemp ( $originalName, $srcPath) | ||||||||||||||||
| Pick a random name in the temp zone and store a file to it. | ||||||||||||||||
| streamFileWithStatus ( $virtualUrl, $headers=[], $optHeaders=[]) | ||||||||||||||||
| Attempt to stream a file with the given virtual URL/storage path. | ||||||||||||||||
| supportsSha1URLs () | ||||||||||||||||
| Returns whether or not repo supports having originals SHA-1s in the thumb URLs. | ||||||||||||||||
| validateFilename ( $filename) | ||||||||||||||||
| Determine if a relative path is valid, i.e. | ||||||||||||||||
Protected Member Functions | |
| assertWritableRepo () | |
| Throw an exception if this repo is read-only by design. | |
| getDBFactory () | |
Protected Member Functions inherited from MediaWiki\FileRepo\LocalRepo | |
| deletedFileHasKey ( $key, $lock=null) | |
| Check if a deleted (filearchive) file has this sha1 key. | |
| hasAcessibleSharedCache () | |
| Check whether the repo has a shared cache, accessible from the current site context. | |
| hiddenFileHasKey ( $key, $lock=null) | |
| Check if a hidden (revision delete) file has this sha1 key. | |
| skipWriteOperationIfSha1 ( $function, array $args) | |
| Skips the write operation if storage is sha1-based, executes it normally otherwise. | |
Protected Member Functions inherited from MediaWiki\FileRepo\FileRepo | |
| enumFilesInStorage ( $callback) | |
| Call a callback function for every public file in the repository. | |
| getZoneLocation ( $zone) | |
| The storage container and base path of a zone. | |
| initDirectory ( $dir) | |
| Creates a directory with the appropriate zone permissions. | |
| initZones ( $doZones=[]) | |
| Ensure that a single zone or list of zones is defined for usage. | |
| resolveToStoragePathIfVirtual ( $path) | |
| If a path is a virtual URL, resolve it to a storage path. | |
Protected Attributes | |
| IDatabase | $dbConn |
| string | $dbFlags |
| string | $dbName |
| string | $dbPassword |
| string | $dbServer |
| string | $dbType |
| string | $dbUser |
| callable | $fileFactory = [ ForeignDBFile::class, 'newFromTitle' ] |
| callable | $fileFromRowFactory = [ ForeignDBFile::class, 'newFromRow' ] |
| string | $tablePrefix |
Protected Attributes inherited from MediaWiki\FileRepo\LocalRepo | |
| BlobStore | $blobStore |
| string | $dbDomain |
| DB domain of the repo wiki. | |
| IConnectionProvider | $dbProvider |
| callable | $fileFactory = [ LocalFile::class, 'newFromTitle' ] |
| callable | $fileFactoryKey = [ LocalFile::class, 'newFromKey' ] |
| callable | $fileFromRowFactory = [ LocalFile::class, 'newFromRow' ] |
| bool | $hasAccessibleSharedCache |
| Whether shared cache keys are exposed/accessible. | |
| callable | $oldFileFactory = [ OldLocalFile::class, 'newFromTitle' ] |
| callable | $oldFileFactoryKey = [ OldLocalFile::class, 'newFromKey' ] |
| callable | $oldFileFromRowFactory = [ OldLocalFile::class, 'newFromRow' ] |
| bool | $reserializeMetadata = false |
| int null | $splitMetadataThreshold = 1000 |
| bool | $updateCompatibleMetadata = false |
| bool | $useJsonMetadata = true |
| bool | $useSplitMetadata = false |
Protected Attributes inherited from MediaWiki\FileRepo\FileRepo | |
| int | $abbrvThreshold |
| File names over this size will use the short form of thumbnail names. | |
| string null | $articleUrl |
| Equivalent to $wgArticlePath, e.g. | |
| FileBackend | $backend |
| int | $deletedHashLevels |
| The number of directory levels for hash-based division of deleted files. | |
| string null | $descBaseUrl |
| URL of image description pages, e.g. | |
| bool | $disableLocalTransform = false |
| Disable local image scaling. | |
| null string | $favicon = null |
| The URL to a favicon (optional, may be a server-local path URL). | |
| callable | $fileFactory = [ UnregisteredLocalFile::class, 'newFromTitle' ] |
| Override these in the base class. | |
| callable false | $fileFactoryKey = false |
| Override these in the base class. | |
| int | $hashLevels |
| The number of directory levels for hash-based division of files. | |
| bool | $hasSha1Storage = false |
| bool | $initialCapital |
| Equivalent to $wgCapitalLinks (or $wgCapitalLinkOverrides[NS_FILE], determines whether filenames implicitly start with a capital letter. | |
| bool | $isPrivate |
| Whether all zones should be private (e.g. | |
| callable false | $oldFileFactory = false |
| Override these in the base class. | |
| callable false | $oldFileFactoryKey = false |
| Override these in the base class. | |
| string | $pathDisclosureProtection = 'simple' |
| May be 'paranoid' to remove all parameters from error messages, 'none' to leave the paths in unchanged, or 'simple' to replace paths with placeholders. | |
| string null | $scriptDirUrl |
| URL of the MediaWiki installation, equivalent to $wgScriptPath, e.g. | |
| bool | $supportsSha1URLs = false |
| string | $thumbProxySecret |
| Secret key to pass as an X-Swift-Secret header to the proxied thumb service. | |
| string | $thumbProxyUrl |
| URL of where to proxy thumb.php requests to. | |
| string | $thumbScriptUrl |
| URL of thumb.php. | |
| string false | $thumbUrl |
| The base thumbnail URL. | |
| bool | $transformVia404 |
| Whether to skip media file transformation on parse and rely on a 404 handler instead. | |
| string false | $url |
| Public zone URL. | |
| WANObjectCache | $wanCache |
| array | $zones = [] |
| Map of zones to config. | |
Additional Inherited Members | |
Static Public Member Functions inherited from MediaWiki\FileRepo\LocalRepo | |
| static | getHashFromKey ( $key) |
| Gets the SHA1 hash from a storage key. | |
Static Public Member Functions inherited from MediaWiki\FileRepo\FileRepo | |
| static | isVirtualUrl ( $url) |
| Determine if a string is an mwrepo:// URL. | |
Public Attributes inherited from MediaWiki\FileRepo\FileRepo | |
| int | $descriptionCacheExpiry |
| bool | $fetchDescription |
| Whether to fetch commons image description pages and display them on the local wiki. | |
| string | $name |
| const | DELETE_SOURCE = 1 |
| const | NAME_AND_TIME_ONLY = 1 |
| const | OVERWRITE = 2 |
| const | OVERWRITE_SAME = 4 |
| const | SKIP_LOCKING = 8 |
Static Protected Member Functions inherited from MediaWiki\FileRepo\FileRepo | |
| static | getHashPathForLevel ( $name, $levels) |
A foreign repository with an accessible MediaWiki database.
Definition at line 25 of file ForeignDBRepo.php.
| MediaWiki\FileRepo\ForeignDBRepo::__construct | ( | $info | ) |
| array | null | $info |
Definition at line 58 of file ForeignDBRepo.php.
References MediaWiki\FileRepo\LocalRepo\$dbDomain.
|
protected |
Throw an exception if this repo is read-only by design.
This does not and should not check getReadOnlyReason().
| LogicException |
Reimplemented from MediaWiki\FileRepo\FileRepo.
Definition at line 110 of file ForeignDBRepo.php.
| MediaWiki\FileRepo\ForeignDBRepo::getBlobStore | ( | ) |
Get a BlobStore for storing and retrieving large metadata, or null if that can't be done.
Reimplemented from MediaWiki\FileRepo\LocalRepo.
Definition at line 114 of file ForeignDBRepo.php.
|
protected |
Reimplemented from MediaWiki\FileRepo\LocalRepo.
Definition at line 93 of file ForeignDBRepo.php.
References MediaWiki\FileRepo\ForeignDBRepo\$dbFlags, MediaWiki\FileRepo\ForeignDBRepo\$dbName, MediaWiki\FileRepo\ForeignDBRepo\$dbPassword, MediaWiki\FileRepo\ForeignDBRepo\$dbServer, MediaWiki\FileRepo\ForeignDBRepo\$dbType, MediaWiki\FileRepo\ForeignDBRepo\$dbUser, MediaWiki\FileRepo\ForeignDBRepo\$tablePrefix, and MediaWiki\MediaWikiServices\getInstance().
Referenced by MediaWiki\FileRepo\ForeignDBRepo\getPrimaryDB().
| MediaWiki\FileRepo\ForeignDBRepo::getPrimaryDB | ( | ) |
Get a connection to the primary DB.
Reimplemented from MediaWiki\FileRepo\LocalRepo.
Definition at line 76 of file ForeignDBRepo.php.
References MediaWiki\FileRepo\ForeignDBRepo\$dbConn, DB_PRIMARY, and MediaWiki\FileRepo\ForeignDBRepo\getDBFactory().
Referenced by MediaWiki\FileRepo\ForeignDBRepo\getReplicaDB().
| MediaWiki\FileRepo\ForeignDBRepo::getReplicaDB | ( | ) |
Get a connection to the replica DB.
Reimplemented from MediaWiki\FileRepo\LocalRepo.
Definition at line 86 of file ForeignDBRepo.php.
References MediaWiki\FileRepo\ForeignDBRepo\getPrimaryDB().
|
protected |
Definition at line 48 of file ForeignDBRepo.php.
Referenced by MediaWiki\FileRepo\ForeignDBRepo\getPrimaryDB().
|
protected |
Definition at line 42 of file ForeignDBRepo.php.
Referenced by MediaWiki\FileRepo\ForeignDBRepo\getDBFactory().
|
protected |
Definition at line 39 of file ForeignDBRepo.php.
Referenced by MediaWiki\FileRepo\ForeignDBRepo\getDBFactory().
|
protected |
Definition at line 36 of file ForeignDBRepo.php.
Referenced by MediaWiki\FileRepo\ForeignDBRepo\getDBFactory().
|
protected |
Definition at line 30 of file ForeignDBRepo.php.
Referenced by MediaWiki\FileRepo\ForeignDBRepo\getDBFactory().
|
protected |
Definition at line 27 of file ForeignDBRepo.php.
Referenced by MediaWiki\FileRepo\ForeignDBRepo\getDBFactory().
|
protected |
Definition at line 33 of file ForeignDBRepo.php.
Referenced by MediaWiki\FileRepo\ForeignDBRepo\getDBFactory().
|
protected |
Definition at line 51 of file ForeignDBRepo.php.
|
protected |
Definition at line 53 of file ForeignDBRepo.php.
|
protected |
Definition at line 45 of file ForeignDBRepo.php.
Referenced by MediaWiki\FileRepo\ForeignDBRepo\getDBFactory().