Merge pull request #10648 from appwrite/ser-218

Fix errors on downloading large deployment output
This commit is contained in:
Matej Bačo 2025-10-23 14:25:34 +02:00 committed by GitHub
commit c80b40cec7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -102,17 +102,15 @@ class Get extends Action
throw new Exception(Exception::DEPLOYMENT_NOT_FOUND);
}
$response
->setContentType('application/gzip')
->addHeader('Cache-Control', 'no-cache, no-store, must-revalidate')
->addHeader('Expires', '0')
->addHeader('Pragma', 'no-cache')
->addHeader('X-Peak', \memory_get_peak_usage())
->addHeader('Content-Disposition', 'attachment; filename="' . $deploymentId . '-' . $type . '.tar.gz"');
$size = $device->getFileSize($path);
$rangeHeader = $request->getHeader('range');
$response
->setContentType('application/gzip')
->addHeader('Cache-Control', 'private, max-age=3888000') // 45 days
->addHeader('X-Peak', \memory_get_peak_usage())
->addHeader('Content-Disposition', 'attachment; filename="' . $deploymentId . '-' . $type . '.tar.gz"');
if (!empty($rangeHeader)) {
$start = $request->getRangeStart();
$end = $request->getRangeEnd();
@ -133,6 +131,7 @@ class Get extends Action
->setStatusCode(Response::STATUS_CODE_PARTIALCONTENT);
$response->send($device->read($path, $start, ($end - $start + 1)));
return;
}
if ($size > APP_STORAGE_READ_BUFFER) {