1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
storage_service.php
См. документацию.
1<?php
3
4abstract class CCloudStorageService
5{
6 protected $verb = '';
7 protected $host = '';
8 protected $url = '';
9
10 protected $errno = 0;
11 protected $errstr = '';
12
13 protected $status = 0;
14 protected $headers = /*.(array[string]string).*/[];
15 protected $result = '';
16
17 public $tokenHasExpired = false;
18 protected $streamTimeout = 0;
19
24 abstract public function GetObject();
25
29 abstract public function GetID();
30
34 abstract public function GetName();
35
39 abstract public function GetLocationList();
40
48 abstract public function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm);
49
55 abstract public function CheckSettings($arBucket, &$arSettings);
56
61 abstract public function CreateBucket($arBucket);
62
67 abstract public function DeleteBucket($arBucket);
68
73 abstract public function IsEmptyBucket($arBucket);
74
81 public function GetFileSRC($arBucket, $arFile, $encoded = true)
82 {
83 return '';
84 }
85
91 abstract public function FileExists($arBucket, $filePath);
92
99 abstract public function FileCopy($arBucket, $arFile, $filePath);
100
107 public function DownloadToFile($arBucket, $arFile, $filePath)
108 {
109 $url = $this->GetFileSRC($arBucket, $arFile);
111 'streamTimeout' => $this->streamTimeout,
112 ]);
113 $result = $request->download($url, $filePath);
114 if ($request->getStatus() == 404 || $request->getStatus() == 403)
115 {
116 return false;
117 }
118 return $result;
119 }
120
126 abstract public function DeleteFile($arBucket, $filePath);
127
134 abstract public function SaveFile($arBucket, $filePath, $arFile);
135
142 abstract public function ListFiles($arBucket, $filePath, $bRecursive = false);
143
149 public function GetFileInfo($arBucket, $filePath)
150 {
151 return null; // not implemented
152 }
153
161 public function FileRename($arBucket, $sourcePath, $targetPath, $overwrite = true)
162 {
163 if ($this->FileExists($arBucket, $sourcePath))
164 {
165 $contentType = $this->headers['Content-Type'];
166 }
167 else
168 {
169 return false;
170 }
171
172 if ($this->FileExists($arBucket, $targetPath))
173 {
174 if (!$overwrite)
175 {
176 return false;
177 }
178
179 if (!$this->DeleteFile($arBucket, $targetPath))
180 {
181 return false;
182 }
183 }
184
185 $arFile = [
186 'SUBDIR' => '',
187 'FILE_NAME' => ltrim($sourcePath, '/'),
188 'CONTENT_TYPE' => $contentType,
189 ];
190
191 if (!$this->FileCopy($arBucket, $arFile, $targetPath))
192 {
193 return false;
194 }
195
196 if (!$this->DeleteFile($arBucket, $sourcePath))
197 {
198 return false;
199 }
200
201 return true;
202 }
203
212 abstract public function InitiateMultipartUpload($arBucket, &$NS, $filePath, $fileSize, $ContentType);
213
217 abstract public function GetMinUploadPartSize();
218
225 abstract public function UploadPart($arBucket, &$NS, $data);
226
234 public function UploadPartNo($arBucket, &$NS, $data, $part_no)
235 {
236 return false;
237 }
238
244 abstract public function CompleteMultipartUpload($arBucket, &$NS);
245
251 public function CancelMultipartUpload($arBucket, &$NS)
252 {
253 }
254
260 public function SetHeader($name, $value)
261 {
262 }
263
268 public function UnsetHeader($name)
269 {
270 }
271
276 public function SetPublic($state = true)
277 {
278 }
279
283 public function getHeaders()
284 {
285 return $this->headers;
286 }
287
291 public function GetLastRequestStatus()
292 {
293 return $this->status;
294 }
295
300 public function GetLastRequestHeader($headerName)
301 {
302 $loweredName = mb_strtolower($headerName);
303 foreach ($this->headers as $name => $value)
304 {
305 if (mb_strtolower($name) === $loweredName)
306 {
307 return $value;
308 }
309 }
310 return '';
311 }
312
316 public static function GetObjectInstance()
317 {
318 return new static();
319 }
320
321 public function formatError()
322 {
323 if ($this->errno > 0)
324 {
325 return GetMessage('CLO_STORAGE_HTTP_ERROR', [
326 '#verb#' => $this->verb,
327 '#url#' => $this->url,
328 '#errno#' => $this->errno,
329 '#errstr#' => $this->errstr,
330 ]);
331 }
332 return '';
333 }
334}
if(!Loader::includeModule('catalog')) if(!AccessController::getCurrent() ->check(ActionDictionary::ACTION_PRICE_EDIT)) if(!check_bitrix_sessid()) $request
Определения catalog_reindex.php:36
DeleteFile($arBucket, $filePath)
GetFileInfo($arBucket, $filePath)
Определения storage_service.php:149
DeleteBucket($arBucket)
InitiateMultipartUpload($arBucket, &$NS, $filePath, $fileSize, $ContentType)
FileExists($arBucket, $filePath)
UploadPart($arBucket, &$NS, $data)
FileRename($arBucket, $sourcePath, $targetPath, $overwrite=true)
Определения storage_service.php:161
static GetObjectInstance()
Определения storage_service.php:316
SetHeader($name, $value)
Определения storage_service.php:260
GetFileSRC($arBucket, $arFile, $encoded=true)
Определения storage_service.php:81
FileCopy($arBucket, $arFile, $filePath)
UploadPartNo($arBucket, &$NS, $data, $part_no)
Определения storage_service.php:234
CompleteMultipartUpload($arBucket, &$NS)
GetLastRequestHeader($headerName)
Определения storage_service.php:300
SaveFile($arBucket, $filePath, $arFile)
IsEmptyBucket($arBucket)
CancelMultipartUpload($arBucket, &$NS)
Определения storage_service.php:251
SetPublic($state=true)
Определения storage_service.php:276
UnsetHeader($name)
Определения storage_service.php:268
DownloadToFile($arBucket, $arFile, $filePath)
Определения storage_service.php:107
CreateBucket($arBucket)
ListFiles($arBucket, $filePath, $bRecursive=false)
CheckSettings($arBucket, &$arSettings)
GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
GetLastRequestStatus()
Определения storage_service.php:291
$data['IS_AVAILABLE']
Определения .description.php:13
$bVarsFromForm
Определения file_edit.php:44
if(!defined('NOT_CHECK_PERMISSIONS')) $NS
Определения backup.php:24
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$name
Определения menu_edit.php:35
$contentType
Определения quickway.php:301