1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
storage_service_selectel_s3.php
См. документацию.
1<?php
3
5{
6 public function GetObject()
7 {
9 }
10
11 public function GetID()
12 {
13 return 'selectel_s3_storage';
14 }
15
16 public function GetName()
17 {
18 return 'Selectel (S3)';
19 }
20
21 public function GetLocationList()
22 {
23 return [
24 '' => 's3.storage.selcloud.ru',
25 ];
26 }
27
28 public function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
29 {
31 {
32 $arSettings = $_POST['SETTINGS'][$this->GetID()];
33 }
34 else
35 {
36 $arSettings = unserialize($arBucket['SETTINGS'], ['allowed_classes' => false]);
37 }
38
39 if (!is_array($arSettings))
40 {
41 $arSettings = ['ACCESS_KEY' => '', 'SECRET_KEY' => ''];
42 }
43
44 $htmlID = htmlspecialcharsbx($this->GetID());
45 $display = $cur_SERVICE_ID == $this->GetID() || !$bServiceSet ? '' : 'none';
46
47 $result = '
48 <tr id="SETTINGS_0_' . $htmlID . '" style="display:' . $display . '" class="settings-tr adm-detail-required-field">
49 <td>' . GetMessage('CLO_STORAGE_SELECTEL_S3_EDIT_ACCESS_KEY') . ':</td>
50 <td><input type="hidden" name="SETTINGS[' . $htmlID . '][ACCESS_KEY]" id="' . $htmlID . 'ACCESS_KEY" value="' . htmlspecialcharsbx($arSettings['ACCESS_KEY']) . '"><input type="text" size="55" name="' . $htmlID . 'INP_ACCESS_KEY" id="' . $htmlID . 'INP_ACCESS_KEY" value="' . htmlspecialcharsbx($arSettings['ACCESS_KEY']) . '" ' . ($arBucket['READ_ONLY'] === 'Y' ? '"disabled"' : '') . ' onchange="BX(\'' . $htmlID . 'ACCESS_KEY\').value = this.value"></td>
51 </tr>
52 <tr id="SETTINGS_1_' . $htmlID . '" style="display:' . $display . '" class="settings-tr adm-detail-required-field">
53 <td>' . GetMessage('CLO_STORAGE_SELECTEL_S3_EDIT_SECRET_KEY') . ':</td>
54 <td><input type="hidden" name="SETTINGS[' . $htmlID . '][SECRET_KEY]" id="' . $htmlID . 'SECRET_KEY" value="' . htmlspecialcharsbx($arSettings['SECRET_KEY']) . '"><input type="text" size="55" name="' . $htmlID . 'INP_SECRET_KEY" id="' . $htmlID . 'INP_SECRET_KEY" value="' . htmlspecialcharsbx($arSettings['SECRET_KEY']) . '" autocomplete="off" ' . ($arBucket['READ_ONLY'] === 'Y' ? '"disabled"' : '') . ' onchange="BX(\'' . $htmlID . 'SECRET_KEY\').value = this.value">' . (
55 array_key_exists('SESSION_TOKEN', $arSettings) ?
56 '<input type="hidden" name="SETTINGS[' . $htmlID . '][SESSION_TOKEN]" id="' . $htmlID . 'SESSION_TOKEN" value="' . htmlspecialcharsbx($arSettings['SESSION_TOKEN']) . '">' :
57 ''
58 ) . '</td>
59 </tr>
60 <tr id="SETTINGS_2_' . $htmlID . '" style="display:' . $display . '" class="settings-tr">
61 <td>&nbsp;</td>
62 <td>' . BeginNote() . GetMessage('CLO_STORAGE_SELECTEL_S3_EDIT_GUIDE') . EndNote() . '</td>
63 </tr>
64 ';
65
66 return $result;
67 }
68
69 public function CheckSettings($arBucket, &$arSettings)
70 {
71 global $APPLICATION;
72 $aMsg = /*.(array[int][string]string).*/[];
73
74 $result = [
75 'ACCESS_KEY' => is_array($arSettings) ? trim($arSettings['ACCESS_KEY']) : '',
76 'SECRET_KEY' => is_array($arSettings) ? trim($arSettings['SECRET_KEY']) : '',
77 'USE_HTTPS' => 'Y',
78 ];
79 if (is_array($arSettings) && array_key_exists('SESSION_TOKEN', $arSettings))
80 {
81 $result['SESSION_TOKEN'] = trim($arSettings['SESSION_TOKEN']);
82 }
83
84 if ($arBucket['READ_ONLY'] !== 'Y' && $result['ACCESS_KEY'] === '')
85 {
86 $aMsg[] = [
87 'id' => $this->GetID() . 'INP_ACCESS_KEY',
88 'text' => GetMessage('CLO_STORAGE_SELECTEL_S3_EMPTY_ACCESS_KEY'),
89 ];
90 }
91
92 if ($arBucket['READ_ONLY'] !== 'Y' && $result['SECRET_KEY'] === '')
93 {
94 $aMsg[] = [
95 'id' => $this->GetID() . 'INP_SECRET_KEY',
96 'text' => GetMessage('CLO_STORAGE_SELECTEL_S3_EMPTY_SECRET_KEY'),
97 ];
98 }
99
100 if (!empty($aMsg))
101 {
102 $e = new CAdminException($aMsg);
103 $APPLICATION->ThrowException($e);
104 return false;
105 }
106 else
107 {
108 $arSettings = $result;
109 }
110
111 return true;
112 }
113
114 protected function GetRequestHost($bucket, $arSettings)
115 {
116 if (
117 $this->new_end_point !== ''
118 && preg_match('#^(http|https)://' . preg_quote($bucket, '#') . '(.+?)/#', $this->new_end_point, $match) > 0
119 )
120 {
121 return $bucket . $match[2];
122 }
123 else
124 {
125 if ($bucket !== '')
126 {
127 return $bucket . '.s3.storage.selcloud.ru';
128 }
129 else
130 {
131 return 's3.storage.selcloud.ru';
132 }
133 }
134 }
135}
global $APPLICATION
Определения include.php:80
GetRequestHost($bucket, $arSettings)
CheckSettings($arBucket, &$arSettings)
Определения storage_service_selectel_s3.php:69
GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
Определения storage_service_selectel_s3.php:28
$bVarsFromForm
Определения file_edit.php:44
EndNote()
Определения filter_tools.php:601
BeginNote($sParams='', $sMessParams='')
Определения filter_tools.php:589
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397