diff --git a/src/upload/ArcanistFileUploader.php b/src/upload/ArcanistFileUploader.php --- a/src/upload/ArcanistFileUploader.php +++ b/src/upload/ArcanistFileUploader.php @@ -116,8 +116,7 @@ $conduit = $this->conduit; $futures = array(); foreach ($files as $key => $file) { - $params = array( - 'name' => $file->getName(), + $params = $this->getUploadParameters($file) + array( 'contentLength' => $file->getByteSize(), 'contentHash' => $file->getContentHash(), ); @@ -127,11 +126,6 @@ $params['deleteAfterEpoch'] = $delete_after; } - $view_policy = $file->getViewPolicy(); - if ($view_policy !== null) { - $params['viewPolicy'] = $view_policy; - } - $futures[$key] = $conduit->callMethod('file.allocate', $params); } @@ -294,14 +288,30 @@ return $conduit->callMethodSynchronous( 'file.upload', - array( - 'name' => $file->getName(), + $this->getUploadParameters($file) + array( 'data_base64' => base64_encode($data), )); } /** + * Get common parameters for file uploads. + */ + private function getUploadParameters(ArcanistFileDataRef $file) { + $params = array( + 'name' => $file->getName(), + ); + + $view_policy = $file->getViewPolicy(); + if ($view_policy !== null) { + $params['viewPolicy'] = $view_policy; + } + + return $params; + } + + + /** * Write a status message. * * @task internal