HomePhabricator

Move Conduit file upload logic into a separate class

Description

Move Conduit file upload logic into a separate class

Summary:
Ref T8259. Currently, arc upload uses new logic but arc diff uses older logic internally. This prevents arc diff from uploading files larger than 4MB to newer servers.

Split the upload logic apart so the two upload pathways can share it. Callers now build a list of FileDataRefs and hand them to an Uploader for upload.

Test Plan:
Ran arc upload on:

  • One file.
  • Several files.
  • Small files.
  • Big files.
  • Directories.
  • Unreadable files.
  • Files full of random data.
  • The same file over and over again.
  • The same big file over and over again.
  • Artificially broke file.allocate and redid some of the simple cases (large/chunked aren't expected to work in this case).

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: joshuaspence, epriestley

Maniphest Tasks: T8259

Differential Revision: https://secure.phabricator.com/D13016

Details

Provenance
epriestleyAuthored on
epriestleyPushed on May 27 2015, 5:25 PM
Reviewer
btrahan
Differential Revision
D13016: Move Conduit file upload logic into a separate class
Parents
rARC407af00ef613: Fix invalid parameter in phutil_console_wrap()
Branches
Unknown
Tags
Unknown
Tasks
T8259: `arc diff` doesn't use chunked uploads