PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.11.0
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.11.0
4.11.0 4.10.0 4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Backup / Dto / Traits / RemoteUploadTrait.php
wp-staging / Backup / Dto / Traits Last commit date
IsExcludingTrait.php 1 day ago IsExportingTrait.php 1 day ago RemoteUploadTrait.php 1 day ago WithPluginsThemesMuPluginsTrait.php 1 day ago
RemoteUploadTrait.php
304 lines
1 <?php
2
3 namespace WPStaging\Backup\Dto\Traits;
4
5 use WPStaging\Backup\Storage\Providers;
6 use WPStaging\Core\WPStaging;
7 use WPStaging\Framework\Facades\Hooks;
8 use WPStaging\Framework\Job\Dto\JobDataDto;
9
10
11
12
13 trait RemoteUploadTrait
14 {
15
16 private $isAutomatedBackup = false;
17
18
19 private $totalBackupSize = 0;
20
21
22 private $filesToUpload = [];
23
24
25 private $uploadedFiles = [];
26
27
28 private $storages;
29
30
31
32
33
34
35 private $remoteStorageMeta;
36
37
38
39
40
41
42 private $isOnlyUpload = false;
43
44
45 private $isMultipartBackup = false;
46
47
48 private $maxMultipartBackupSize = 2147483647;
49
50
51 private $repeatBackupOnSchedule;
52
53
54
55
56 public function getIsAutomatedBackup(): bool
57 {
58 return $this->isAutomatedBackup;
59 }
60
61
62
63
64
65
66
67 public function setIsAutomatedBackup(bool $isAutomatedBackup)
68 {
69 $this->isAutomatedBackup = $isAutomatedBackup;
70 }
71
72
73
74
75 public function getTotalBackupSize(): float
76 {
77 return $this->totalBackupSize;
78 }
79
80
81
82
83
84 public function setTotalBackupSize(float $totalBackupSize)
85 {
86 $this->totalBackupSize = $totalBackupSize;
87 }
88
89
90
91
92 public function getFilesToUpload(): array
93 {
94 return $this->filesToUpload;
95 }
96
97
98
99
100
101 public function setFilesToUpload(array $filesToUpload = [])
102 {
103 $this->filesToUpload = $filesToUpload;
104 }
105
106
107
108
109 public function getUploadedFiles(): array
110 {
111 return $this->uploadedFiles;
112 }
113
114
115
116
117
118 public function setUploadedFiles(array $uploadedFiles = [])
119 {
120 $this->uploadedFiles = $uploadedFiles;
121 }
122
123
124
125
126
127
128
129 public function setUploadedFile(string $uploadedFile, float $fileSize, string $fileHash = '')
130 {
131 $this->uploadedFiles[$uploadedFile] = [
132 'size' => $fileSize,
133 'hash' => $fileHash,
134 ];
135 }
136
137
138
139
140 public function getIsOnlyUpload(): bool
141 {
142 return $this->isOnlyUpload;
143 }
144
145
146
147
148
149 public function setIsOnlyUpload(bool $isOnlyUpload)
150 {
151 $this->isOnlyUpload = $isOnlyUpload;
152 }
153
154
155
156
157 public function getStorages(): array
158 {
159 return $this->storages;
160 }
161
162
163
164
165 public function setStorages($storages = [])
166 {
167 if (!is_array($storages) && !empty($storages)) {
168 $storages = json_decode($storages, true);
169 }
170
171 $this->storages = $storages;
172 }
173
174
175
176
177 public function getRemoteStorageMeta()
178 {
179 return $this->remoteStorageMeta;
180 }
181
182
183
184
185
186 public function setRemoteStorageMeta($remoteStorageMeta = [])
187 {
188 $this->remoteStorageMeta = $remoteStorageMeta;
189 }
190
191
192 public function isLocalBackup(): bool
193 {
194 return in_array('localStorage', $this->getStorages());
195 }
196
197
198 public function isUploadToGoogleDrive(): bool
199 {
200 return in_array(Providers::IDENTIFIER_GOOGLE_DRIVE, $this->getStorages()) || in_array('googleDrive', $this->getStorages());
201 }
202
203
204 public function isUploadToAmazonS3(): bool
205 {
206 return in_array(Providers::IDENTIFIER_AMAZON_S3, $this->getStorages()) || in_array('amazonS3', $this->getStorages());
207 }
208
209
210 public function isUploadToSftp(): bool
211 {
212 return in_array(Providers::IDENTIFIER_SFTP, $this->getStorages());
213 }
214
215
216 public function isUploadToWasabi(): bool
217 {
218 return in_array(Providers::IDENTIFIER_WASABI_S3, $this->getStorages());
219 }
220
221
222 public function isUploadToDigitalOceanSpaces(): bool
223 {
224 return in_array(Providers::IDENTIFIER_DIGITALOCEAN_SPACES, $this->getStorages());
225 }
226
227
228 public function isUploadToGenericS3(): bool
229 {
230 return in_array(Providers::IDENTIFIER_GENERIC_S3, $this->getStorages());
231 }
232
233
234 public function isUploadToDropbox(): bool
235 {
236 return in_array(Providers::IDENTIFIER_DROPBOX, $this->getStorages());
237 }
238
239
240 public function isUploadToOneDrive(): bool
241 {
242 return in_array(Providers::IDENTIFIER_ONE_DRIVE, $this->getStorages());
243 }
244
245
246 public function isUploadToPCloud(): bool
247 {
248 return in_array(Providers::IDENTIFIER_PCLOUD, $this->getStorages());
249 }
250
251
252
253
254 public function setIsMultipartBackup($isMultipartBackup)
255 {
256 $this->isMultipartBackup = $isMultipartBackup;
257 }
258
259
260
261
262 public function getIsMultipartBackup(): bool
263 {
264
265 if (!WPStaging::isPro()) {
266 return false;
267 }
268
269 return Hooks::applyFilters(JobDataDto::FILTER_IS_MULTIPART_BACKUP, $this->isMultipartBackup);
270 }
271
272
273
274
275 public function getMaxMultipartBackupSize()
276 {
277 return Hooks::applyFilters(JobDataDto::FILTER_MAX_MULTIPART_BACKUP_SIZE, $this->maxMultipartBackupSize);
278 }
279
280
281
282
283 public function setMaxMultipartBackupSize($maxMultipartBackupSize)
284 {
285 $this->maxMultipartBackupSize = $maxMultipartBackupSize;
286 }
287
288
289
290
291 public function getRepeatBackupOnSchedule()
292 {
293 return $this->repeatBackupOnSchedule;
294 }
295
296
297
298
299 public function setRepeatBackupOnSchedule($repeatBackupOnSchedule)
300 {
301 $this->repeatBackupOnSchedule = $repeatBackupOnSchedule;
302 }
303 }
304