* getPathsToLockForOpsInternal() now returns an array in the format LockManager can use
* Also fixed getScopedLocksForOps() for multiwrite backend (it should accept proxy backend paths)
* Updated getScopedFileLocks() docs
Change-Id: Id0dc50c159c5fbc8fca10a9e46c5be23afcb3e9a
* This lets calling code be far more robust rather than just
silently ignoring entries due to some temporary problem.
Change-Id: I3ce2ae34f6cff5e40a80b8da5688503a387ce2a6
* Used this parameter to speed up copyFileBackend.php.
* Also added mtime checks to copyFileBackend.php and a few cleanups.
* Also fixed some incorrect getDirListPageInternal/getFileListPageInternal docs.
Change-Id: I424ef238f7adf4cf1f33b74e3a4e187dcb328a99
* Previously, for doQuickOperations(), the default move function
would just delete the file if it was moved over itself. In fact,
the php-cloudfiles bindings have this same bug in its move function.
* For both copy and move, when the source and destination are the
same path, make sure that the headers get updated as specified.
This only applies for the 'overwrite' case (not 'overwriteSame').
* Fixed bad status for doQuickOperations() when copying a file over
itself using FSFileBackend.
* Clarified the documentation for 'overwriteSame' option.
* Renamed destSameAsSource to overwriteSameCase in FileOp for clarity.
Change-Id: I3f609d9413795c654de27958b1e807b1fc785f31
Doxygen expects parameter types to come before the
parameter name in @param tags. Used a quick regex
to switch everything around where possible. This
only fixes cases where a primitve variable (or a
primitive followed by other types) is the variable
type. Other cases will need to be fixed manually.
Change-Id: Ic59fd20856eb0489d70f3469a56ebce0efb3db13
* This reduces the change of partial operations. WMF sites already
set ignore_user_abort() in configuration, but this makes sure that
it always happens during file changes.
Change-Id: I702c27fc3c19aca0cdd39b793a3250ead40bfe71
* In some cases (like certain qualified file backends), a domain
may be desired that is not simple a wiki ID.
* Also added a LockManangerGroup::config() function to export
the configuration of a lock manager.
Change-Id: I5a75c55be3cc9017ed8a717d6d30e466fd00340f
This gives updates for the faster part (local FS file changes) and not
the slow GETs that really need this. This should be re-done to use a
byte based read progress callback (that handles the parallel GETs).
This reverts commit 6c9f13b547
Change-Id: Id8d739e1d5048e7f38c68eda4f9a008682707cba
* This partially reverts b80bd6159b.
* Clarified 'headers' parameter documentation a bit.
* Added the "describe" function wrappers that the other ops have.
Change-Id: I7142fd4d973f5f3407d244a4cae793934083bc26
* Added a 'describe' file operation type to doOperations()/doQuickOperations().
This can be used by scripts to fill in headers like X-Content-Duration for
files that already exists.
* Removed wrong comments about removing headers (they don't get removed with null).
* Added some quick unit tests.
Change-Id: I43c5907b59421beaa9487eefac0cdbf8bc6c6d85
* For backends that support it, custom HTTP headers can be set on files.
* Added a getStreamHeaders() function to MediaHandler to let subclasses
recommend header name/value pairs to be used for responses to GET/HEAD
requests. For example, an OGG handler could set "X-Content-Duration".
* Made LocalFile use this function to set HTTP headers of new uploads.
Change-Id: I1b017e1342513f0097fe6d142aae18e819403293
* This lets callers update the cache/db with the operation progress so that
APIs can be made to use this and expose this information to client polling.
Change-Id: I9a86c1c5ffccf029be5a150e5998c3ce4740ec62
* This can speed up certain video file operations for scripts that support
specifying source files via URLs and support HTTP Range headers.
* Updated unit tests.
Change-Id: I60cb95c2e3dd9f7df1f740e9182be7c79af69d6e
* This lets callers use "copy if exist" semantics more easily and avoids extra stat
queries to the backend (since the cache is cleared before doOperations()).
* Tweaked FileOp::fileSha1() to reduce backend stat requests as 404s are not cached.
Change-Id: Icb5ca14b3316f273d53593f48979d14e113990e1
* Optimized these in Swift to use pipelined GETs.
* This can also be used to improve concatenate().
Change-Id: Ibeb5df7532f9f5c16736b20c28b7c0d9ddfb412f
* This moves some options code from FileBackend to FileBackendStore,
where it belongs. This also allows for reuse by other operations.
Change-Id: Ic9a7d36a6e4bc6b815a7d68926105401f65c53fb