24use Wikimedia\AtEase\AtEase;
34 [
'overwrite',
'overwriteSame',
'headers' ],
40 $status = StatusValue::newGood();
43 if ( !is_file( $this->params[
'src'] ) ) {
44 $status->fatal(
'backend-fail-notexists', $this->params[
'src'] );
49 $maxBytes = $this->backend->maxFileSizeInternal();
50 if ( filesize( $this->params[
'src'] ) > $maxBytes ) {
51 $status->fatal(
'backend-fail-maxsize', $this->params[
'dst'], $maxBytes );
58 if ( $status->isOK() ) {
60 $predicates[
'exists'][$this->params[
'dst']] =
true;
68 if ( $this->overwriteSameCase ) {
69 $status = StatusValue::newGood();
72 $status = $this->backend->storeInternal( $this->
setFlags( $this->params ) );
79 AtEase::suppressWarnings();
80 $hash = sha1_file( $this->params[
'src'] );
81 AtEase::restoreWarnings();
82 if ( $hash !==
false ) {
83 $hash = Wikimedia\base_convert( $hash, 16, 36, 31 );
90 return [ $this->params[
'dst'] ];
FileBackend helper class for representing operations.
setFlags(array $params)
Adjust params to FileBackendStore internal file calls.
precheckDestExistence(array $predicates)
Check for errors with regards to the destination file already existing.
Store a file into the backend from a file on the file system.
getSourceSha1Base36()
precheckDestExistence() helper function to get the source file SHA-1.
doPrecheck(array &$predicates)
allowedParams()
Get the file operation parameters.
storagePathsChanged()
Get a list of storage paths written to for this operation.