Commit graph

164 commits

Author SHA1 Message Date
Yuri Astrakhan
0aa24ae558 Fixed many small spelling mistakes and php docs, var decl.
Change-Id: I1508ed7eb77e5e4f700fb63955d626c4f5915840
2013-03-10 23:45:51 -04:00
umherirrender
d63121016d fix some spacing
Added/removed spaces around logical/arithmetic operator
Reduced multiple empty lines to one empty line
Removed wrong tabs before comments at end of line
Removed too many spaces in assigments

Change-Id: I2bba4e72f9b5f88c53324d7b70e6042f1aad8f6b
2013-03-07 17:53:21 +01:00
Brad Jorsch
f8d1bf2ad1 Add "upload" type to API
If a file upload is not formatted correctly for PHP to recognize it as a
file upload rather than a regular field, the API will wind up trying to
load the file contents as a text field. Since these file contents are
often a large binary file, this will tend to run out of memory trying to
apply Unicode normalization.

To prevent this and to allow for a helpful error message, mark
parameters that are supposed to be file uploads.

Bug: 44909
Change-Id: Ia4586953e2ad2d72d08852689e060e39e7920d50
2013-03-02 16:12:53 -05:00
Platonides
81c42c811f Several minor fixes.
- Add missing wfProfileOut( __METHOD__ ); in FSFile.php [13ae6bfb]
- Remove unused $IP globals in ApiUpload.php [fbf34d84]
- Remove empty statement in EditPage.php [375687ed]

Change-Id: I3b0506e3c8fc89b352a0d72f18e51a1223af0e9b
2013-02-28 21:09:29 +01:00
Brad Jorsch
cd1398d4d6 (bug 44923) Fix API upload with only one chunk
The API supports chunked uploads to upload a file in multiple pieces.
But it doesn't check if the the entire file is uploaded in the first
chunk, so it winds up waiting for a subsequent chunk that can never
come.

It's actually fairly easy to fix, we just need to move the check for
"did we get the entire file?" outside of the "if we're getting a chunk
after the first" check.

Change-Id: I915c1678dfa3107f1739fed8613ab9452139b946
2013-02-26 17:36:42 -08:00
Aaron Schulz
fbf34d84ab [Upload] Moved async upload stuff to the job queue.
* (bug 44080) Also carry-over the IP and HTTP header info.
* This adds a RequestContext::importScopedSession() function.

Change-Id: Ie9c0a4d78fb719569c8149b9cc8a5430f0ac5673
2013-02-15 15:00:35 -08:00
umherirrender
ca31ebad3f fix some spacing
Added/removed spaces after opening/before closing parentheses

Added a space after a comma

Removed unneeded parentheses in condition

Change-Id: I306091347ccaaf11dee0cdfda3019cb0c12be51b
2013-02-09 23:03:53 +01:00
umherirrender
f97a3a4027 fix some spacing
Change-Id: I670a7baf3ba1e70d18346bb00938d518ba2063bd
2013-02-04 19:59:14 +00:00
Antoine Musso
b2fba3f27f api: remove duplicate __contruct calls
For historical reasons, all our API class had a dummy __construct which
simply calls their parent constructor.  This patch removes all such
occurences to save out some bytes.

Change-Id: I667955d7821f780fc5ce23823d74dedb1729b9fa
2013-01-29 09:38:17 +01:00
umherirrender
2e8da558ba fix some spacing
Change-Id: Id7eda67a43f9040117edd79fdbeb678f1c3a6da2
2013-01-26 22:11:09 +01:00
Aaron Schulz
2a4ad3e32c Disabled async "from-stash" upload for now.
Change-Id: I81076e55264746dcfe49d2c928d30042aba0c684
2013-01-22 17:13:45 -08:00
Yuri Astrakhan
503cd2f4ae (bug 35885) remove api version string and parameter
API was using SVN's version keyword which GIT does not support.
All related methods were either removed, or for those that
could have been used from extensions, emptied out.
api.php?version now shows unrecognized param warning.

Change-Id: I910ca1448ed2ed697ac19b17c486d130aa1d7e03
2013-01-18 12:41:18 -05:00
Aaron Schulz
a31d0f8edd Added async upload-from-stash support.
* This works similarly to the async concatenation code.

Change-Id: Iae38b93d65182158561b92168af51a1e9f50374c
2013-01-09 02:13:37 +00:00
Aaron Schulz
e9e11251b7 Enforce time limit within AssembleUploadChunks.php.
Change-Id: I8cfcb09da8e7e9020e6b5dfbc5e727522d01b7c1
2013-01-07 15:19:20 -08:00
Aaron Schulz
9e9553785b Set the wiki ID for AssembleUploadChunks.php call for wiki farms.
Change-Id: I342998b45309315b9a1dc75833c997c286874505
2013-01-07 14:32:21 -08:00
Petr Onderka
f52aed938e Fixed description for async parameter in upload module
The description was already present,
but it used incorrect syntax, so it didn't show.

Change-Id: I7522265362f019c73523125df182366dfd274be2
2012-12-19 15:48:01 +00:00
Aaron Schulz
6ef90f24e4 [Upload] Improvements to async stash uploading.
* Added a "stage" field to the status info. This lets clients detect
  if the process failed to even start much more quickly.
* Actually unset the status from $_SESSION if set to false.

Change-Id: I29703f14625b1b10e6413db27a3964324b4679e6
2012-12-11 14:30:30 -08:00
Aaron Schulz
ba5e774de9 [Upload] Added async upload concatenation support.
* Clients can send the last chunk with 'async' to get an immediate
  response and then check the status of the upload by polling the API
  using the 'checkstatus' parameter.
* Pass the User object along to stash functions within UploadFromChunks.

Change-Id: Ie2ad4c7e94862a728e8a687c3195306e16a5059e
2012-12-05 09:39:31 -08:00
Aaron Schulz
5ece17a46d Avoid fatals for bad filenames given for chunk uploads.
Change-Id: I904a801ecbf9eabd9156d70a42d46323455507bd
2012-10-10 16:15:29 -07:00
Reedy
e3f2a90bf0 Remove unused variables/function values returned
Fix trailing whitespace

Change-Id: I53abf75e142f0166032b98e4adb3dabe06643017
2012-08-08 00:47:25 +01:00
Brad Jorsch
d50b416d9f (bug 11142) Improve file ext error reporting in API upload
The API action=upload returns a generic error message when one or more
of the file extensions are blacklisted. It should return a more
informative message, and also return the list of blacklisted extensions
in a machine-readable format.

This changeset introduces a new message,
"api-error-filetype-banned-type", which is to
"api-error-filetype-banned" what "filetype-banned-type" is to
"filetype-banned". As a starting point, I've copied (with minor changes)
the existing filetype-banned-type message to
api-error-filetype-banned-type for all languages for which both
api-error-filetype-banned and filetype-banned-type are currently given.

This changeset also incidentally fixes an internal server error with
format=xml when the filetype-banned error is returned by the API.

Change-Id: I6b0c58fbc5b19aa55286c56fa7da2195ea683ae0
2012-08-07 11:50:08 -07:00
Catrope
558480e3ed Merge "(bug 30625) Return warnings, if they exist, despite ignorewarnings" 2012-08-01 00:48:19 +00:00
umherirrender
06166e334a (bug 38190) Add "required" flag to some token params
action=block/action=unblock can not have the token required because when
using the gettoken param, the token param can not set.

Change-Id: I15317f16c06f150d29c1b17de76f41a6cfa84820
2012-07-20 15:45:51 -07:00
Mark Holmquist
8e402a9dc1 (bug 30625) Return warnings, if they exist, despite ignorewarnings
The API currently doesn't return any indication of the warnings on
a successful upload where the API call had ignorewarnings=true.
This patch allows the client to handle the warnings gracefully.

Patchset 2: Document it properly.

Patchset 3 and 4: Rebase.

Patchset 5: Document it even more properly.

Patchset 6: I didn't understand doxygen properly.

Change-Id: I09c8f3dc13832df55a0ffa9e8b9380aaa4038cf1
2012-07-06 10:26:31 -07:00
umherirrender
a2e40f12f5 (bug 31777) Upload unknown error ``fileexists-forbidden''
adding messages to ApiBase::$messageMap and to message files for client
side localisation

Change-Id: I37e03130c6b90e4614514cd76b73eab6890eb82f
2012-07-01 19:35:31 +02:00
Petr Onderka
80aa025528 Added result properties to action=paraminfo
Added information about the properties of the results of API calls
to action=paraminfo, including information about "property groups":
what should the prop parameter be set to to get that property.

Uses the same format for types as parameters already do.
The output format of some modules doesn't fit this, so the result
properties for them weren't added, or only partially.

Partially implemented modules:
* expandtemplates:
  parsetree is in its own tag
* protect, allusers, backlinks, deletedrevs, info, imageinfo,
  logevents, querypage, recentchanges, revisions, searchinfo,
  usercontribs, userinfo, users, watchlist, upload:
  response with partially complex structure

Not implemented modules:
* feedcontributions, feedwatchlist, opensearch, rds:
  non-standard reponse
* help:
  error is normal response; not very useful for automated tools anyway
* paraminfo, parse, pageprops, siteinfo, userrights:
  response with complex structure

Change-Id: Iff2a9bef79f994e73eef3062b4dd5461bff968ab
2012-06-06 19:24:59 +02:00
Brion VIBBER
bca71b173e Revert "(bug 30625) Add, to every API upload response, the warnings raised."
Inconsistent formatting (returns an empty array vs a full object, breaks UploadWizard)

This reverts commit e2b3d53db5
2012-05-23 19:27:48 +00:00
Mark Holmquist
e2b3d53db5 (bug 30625) Add, to every API upload response, the warnings raised.
The current API implementation has a parameter for uploads that is
called "ignorewarnings". Currently, it will not only suppress any
warnings from stopping the upload, it will also lose any data from
those warnings.

This patch is sort of on the way to solving Bug 30625, which is in
the UploadWizard extension. That extension needs to know when a file
upload *will* fail, barring a change in some data, in order to make
it easier for a user to fix the foreseeable problems. The solution is
either to fix it this way, or to somehow spoof a file upload, and see
if it succeeds. In the hopes that other extensions will also find
this useful, I opted for the former.

Change-Id: I08b4e29e89ade6cf391ae044fceb788aaba3f5b4
2012-05-22 14:23:23 -07:00
Reedy
2edbe14e39 Normalising return statements
Add/improve parameter documentation

Change-Id: I4c7fa319be60a47b7fcd81131458577bccb009fb
2012-04-27 16:40:14 +01:00
Erik Moeller
631519fde7 Fix for chunked uploading support in API.
Chunked uploading is currently only implemented by Upload Wizard,
but is supported in MediaWiki core. It's enabled in Upload Wizard
by setting $wgUploadWizardConfig['enableChunked'] to true.

When enabled, large files will be split into smaller chunks, by
default of 1 MB. This is done through a series of API POST
requests. The file is identified by means of a 'filekey' to
allow for continuation of uploads from previous offsets.

Previously broken behavior: Files were concatenated correctly,
but instead of the whole file, one of the chunks was uploaded
to the wiki. This was due to the API using the filekey of the
chunk, as opposed to the filekey of the whole file.

In addition, this change also cleans out the stash information
for both filekeys after the upload is complete.

[Patch set 2: Whitespace fix]
[Patch set 3: Move filekey result past status check]

Change-Id: Idac94e953676787f9516051e47c006525f198fd4
2012-04-08 20:27:02 -07:00
Sam Reed
b834075972 * (bug 32341) Add upload by URL domain limitation.
Essentially reverts r109741  live again

Which was r109562, r109564, r109570
2012-02-09 23:22:38 +00:00
Sam Reed
76246b9bf5 More return documentation 2012-02-09 21:33:27 +00:00
Sam Reed
af198296ef Revert feature out of r109562, r109564, r109570
Leaving typo/brace fixes and other minor code improvements
2012-01-22 17:33:44 +00:00
Sam Reed
f619564720 * (bug 32341) Add upload by URL domain limitation. 2012-01-19 19:16:06 +00:00
Sam Reed
6115b93df8 Re-instate most of the revisions for bug 33147 "API examples should explain what they do"
Using this to sync up my working copies

Should have the little niggles tidied up though
2011-12-27 16:22:35 +00:00
Brion Vibber
02bb594ac7 Revert r106521: creates lots of long, unwrappable lines in help output 2011-12-20 21:26:57 +00:00
Sam Reed
b0818acd86 More example conversions/additions
Ping r106439
2011-12-17 19:10:33 +00:00
Max Semenik
da663eaf97 Caps fix in API parameter description 2011-12-12 17:22:20 +00:00
Jan Gerber
0095c08ed2 Use database to track uploaded chunks and concatenate at the end.
with i18n documentation dont break phpunit

follow up r93720
2011-11-30 14:56:40 +00:00
Roan Kattouw
e83bb90997 Revert r104659 and its followup r104665: break the unit tests with a fatal error. This cripples our CI system, we can't detect new failures this way. 2011-11-30 13:54:35 +00:00
Jan Gerber
d70c169b90 Use database to track uploaded chunks and concatenate at the end.
follow up r93720
2011-11-30 08:55:16 +00:00
Sam Reed
53000baecf Oh noes, moar http:// -> https:// 2011-11-28 15:43:11 +00:00
John Du Hart
2e7d867478 Removed the 'eclipse helper' bit on top of every API module
It's a parctice that dates back to 2006 when the API was first written, and frankly isn't covered by the coding conventions. Same thing with the docblocks, they're all copypasted with some bits changed and don't even make sense if you look at them in the genereated code docs.
I don't feel that any of us depend on this anymore (get a better IDE), so in the inerest of consistancy it's time we said goodbye to it.
2011-11-16 00:17:26 +00:00
Sam Reed
87446c808a Documentation 2011-11-10 20:50:21 +00:00
John Du Hart
40f19e6def Adding context to the API
This will probably break something somewhere so when it does please yell at me on IRC and I'll fix it.
2011-10-26 23:27:01 +00:00
Bryan Tong Minh
f3fc3c7f43 Follow-up r98430, use dedicated error message for filename too long error. Adds 'filename-toolong' message. 2011-10-07 18:20:55 +00:00
Sam Reed
0ca8ed8792 3 PHP Fatal error: Call to undefined method LocalFile::getFileKey() in /usr/local/apache/common-local/php-1.18/includes/api/ApiUpload.php on line 150
Tag: REL1_18, 1.18wmf1
2011-10-05 13:47:02 +00:00
Sam Reed
469cc76775 Return documentation 2011-09-21 16:36:43 +00:00
Sam Reed
a5628f5734 Based on diff to wikia, set more functions consistently public rather than protected 2011-08-17 22:24:21 +00:00
Sam Reed
8dc7b8889f Whitespace
Documentation
2011-08-11 23:58:29 +00:00