• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_service_s3.php
  • Класс: CCloudStorageService_S3
  • Вызов: CCloudStorageService_S3::ListBuckets
function ListBuckets($arBucket)
{
	global $APPLICATION;

	$result = array(
		"bucket" => array(),
		"ctime" => array(),
	);

	$this->SetLocation($arBucket["LOCATION"]);
	$marker = $pageSize > 0? $filePath.$pageMarker: '';
	while(true)
	{
		$response = $this->SendRequest(
			$arBucket["SETTINGS"],
			'GET',
			'',
			'/',
			''
		);

		if(
			$this->status == 200
			&& is_array($response)
			&& isset($response["ListAllMyBucketsResult"])
			&& is_array($response["ListAllMyBucketsResult"])
			&& isset($response["ListAllMyBucketsResult"]["#"])
			&& is_array($response["ListAllMyBucketsResult"]["#"])
		)
		{
			$ListAllMyBucketsResult = $response["ListAllMyBucketsResult"]["#"];
			if(
				isset($ListAllMyBucketsResult["Buckets"])
				&& is_array($ListAllMyBucketsResult["Buckets"])
				&& isset($ListAllMyBucketsResult["Buckets"][0])
				&& is_array($ListAllMyBucketsResult["Buckets"][0])
				&& isset($ListAllMyBucketsResult["Buckets"][0]["#"])
				&& is_array($ListAllMyBucketsResult["Buckets"][0]["#"])
			)
			{
				foreach($ListAllMyBucketsResult["Buckets"][0]["#"]["Bucket"] as $Bucket)
				{
					$Name = $Bucket["#"]["Name"][0]["#"];
					$CreationDate = $Bucket["#"]["CreationDate"][0]["#"];
					$result["bucket"][] = $APPLICATION->ConvertCharset(urldecode($Name), "UTF-8", LANG_CHARSET);
					$result["ctime"][] = strtotime($CreationDate);
				}
			}
		}
		elseif ($this->checkForTokenExpiration($this->status, $this->result))
		{
			$this->tokenHasExpired = true;
			return false;
		}
		else
		{
			if (defined("BX_CLOUDS_ERROR_DEBUG"))
			{
				AddMessage2Log($this);
			}
			return false;
		}
		break;
	}

	return $result;
}