PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 3.1.13.4
JetBackup – Backup, Restore & Migrate v3.1.13.4
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 9 months ago ChunkedDownload.php 9 months ago ChunkedUpload.php 9 months ago DirIterator.php 9 months ago SFTP.php 9 months ago index.html 9 months ago web.config 9 months 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 }