PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 3.1.18.8
JetBackup – Backup, Restore & Migrate v3.1.18.8
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 / DropBox / ChunkedUpload.php
backup / src / JetBackup / Destination / Vendors / DropBox Last commit date
Client 5 months ago .htaccess 5 months ago ChunkedDownload.php 5 months ago ChunkedUpload.php 5 months ago DirIterator.php 5 months ago DropBox.php 5 months ago index.html 5 months ago web.config 5 months ago
ChunkedUpload.php
65 lines
1 <?php
2
3 namespace JetBackup\Destination\Vendors\DropBox;
4
5 use JetBackup\Destination\Integration\DestinationChunkedUpload;
6 use JetBackup\Destination\Vendors\DropBox\Client\Client;
7 use JetBackup\Exception\IOException;
8 use JetBackup\Web\File\FileChunk;
9 use JetBackup\Web\File\FileStream;
10
11 if (!defined( '__JETBACKUP__')) die('Direct access is not allowed');
12
13 class ChunkedUpload implements DestinationChunkedUpload {
14
15 private Client $_client;
16 private string $_source;
17 private string $_destination;
18 private object $_data;
19
20 public function __construct(Client $client, $source, $destination) {
21 $this->_client = $client;
22 $this->_source = $source;
23 $this->_destination = $destination;
24 $this->_data = new \stdClass();
25 }
26
27 /**
28 * @return object
29 */
30 public function prepare():object {
31 return $this->_client->startUploadSession()->Body;
32 }
33
34 public function setData(object $data):void {
35 $this->_data = $data;
36 }
37
38 public function getOffset():int {
39 if(!isset($this->_data->session_id)) throw new IOException("No session id was found");
40 return $this->_client->getUploadSessionOffset($this->_data->session_id);
41 }
42
43 /**
44 * @return int|null
45 */
46 public function getChunkSize():?int { return null; }
47
48 /**
49 * @param FileChunk $chunk
50 *
51 * @return void
52 */
53 public function upload(FileChunk $chunk):void {
54 if(!isset($this->_data->session_id)) throw new IOException("No session id was found");
55 $this->_client->appendUploadSession($chunk, $this->_data->session_id);
56 }
57
58 /**
59 * @return void
60 */
61 public function finalize():void {
62 if(!isset($this->_data->session_id)) throw new IOException("No session id was found");
63 $this->_client->finishUploadSession($this->_data->session_id, $this->getOffset(), $this->_destination);
64 }
65 }