mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 00:42:41 +01:00
Fix mishandling of chunk threshold in Diffusion for installs with no chunk engines available
Summary: Fixes T10273. The threshold is `null` if no chunk engines are available, but the code didn't handle this properly. Test Plan: Disabled all chunk engines, reloaded, hit issue described in task. Applied patch, got clean file content. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10273 Differential Revision: https://secure.phabricator.com/D15179
This commit is contained in:
parent
6bb24e1d0c
commit
68254a046f
1 changed files with 18 additions and 12 deletions
|
@ -92,21 +92,27 @@ abstract class PhabricatorFileUploadSource
|
|||
|
||||
$threshold = PhabricatorFileStorageEngine::getChunkThreshold();
|
||||
|
||||
// If we don't know how large the file is, we're going to read some data
|
||||
// from it until we know whether it's a small file or not. This will give
|
||||
// us enough information to make a decision about chunking.
|
||||
$length = $this->getDataLength();
|
||||
if ($length === null) {
|
||||
$rope = $this->getRope();
|
||||
while ($this->readFileData()) {
|
||||
$length = $rope->getByteLength();
|
||||
if ($length > $threshold) {
|
||||
break;
|
||||
if ($threshold === null) {
|
||||
// If there are no chunk engines available, we clearly can't chunk the
|
||||
// file.
|
||||
$this->shouldChunk = false;
|
||||
} else {
|
||||
// If we don't know how large the file is, we're going to read some data
|
||||
// from it until we know whether it's a small file or not. This will give
|
||||
// us enough information to make a decision about chunking.
|
||||
$length = $this->getDataLength();
|
||||
if ($length === null) {
|
||||
$rope = $this->getRope();
|
||||
while ($this->readFileData()) {
|
||||
$length = $rope->getByteLength();
|
||||
if ($length > $threshold) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->shouldChunk = ($length > $threshold);
|
||||
$this->shouldChunk = ($length > $threshold);
|
||||
}
|
||||
|
||||
return $this->shouldChunk;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue