PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / trunk
JetBackup – Backup, Restore & Migrate vtrunk
3.1.22.4 3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / src / JetBackup / Destination / Vendors / SFTP / ChunkedDownload.php
backup / src / JetBackup / Destination / Vendors / SFTP Last commit date
.htaccess 1 year ago ChunkedDownload.php 1 year ago ChunkedUpload.php 1 year ago DirIterator.php 1 year ago SFTP.php 1 year ago index.html 1 year ago web.config 1 year ago
ChunkedDownload.php
37 lines
1 <?php
2
3 namespace JetBackup\Destination\Vendors\SFTP;
4
5 use JetBackup\Destination\Integration\DestinationChunkedDownload;
6 use JetBackup\Exception\IOException;
7
8 if (!defined( '__JETBACKUP__')) die('Direct access is not allowed');
9
10 class ChunkedDownload implements DestinationChunkedDownload {
11
12 private SFTP $_connection;
13 private string $_source;
14 private string $_destination;
15
16 public function __construct(SFTP $connection, $source, $destination) {
17 $this->_connection = $connection;
18 $this->_source = $source;
19 $this->_destination = $destination;
20 }
21
22 /**
23 * @param int $start
24 * @param int $end
25 *
26 * @return int
27 * @throws IOException
28 */
29 public function download(int $start, int $end):int {
30 return $this->_connection->retries(function() use ($start, $end) {
31 $length = $end - $start;
32 $fd = fopen($this->_destination, 'a');
33 $this->_connection->getConnection()->get($this->_source, $fd, $start, $length);
34 return $length + 1;
35 }, "Failed downloading chunk");
36 }
37 }