PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / trunk
JetBackup – Backup, Restore & Migrate vtrunk
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 1 year ago .htaccess 1 year ago ChunkedDownload.php 1 year ago ChunkedUpload.php 1 year ago DirIterator.php 1 year ago DropBox.php 1 year ago index.html 1 year ago web.config 1 year 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 }