'access_key', 'access_key_id' => $accessKeyId, 'access_key_secret' => $accessKeySecret, ] ); } }; } /** * @return string */ public static function getDefaultName() { $name = Helper::envNotEmpty('ALIBABA_CLOUD_PROFILE'); if ($name) { return $name; } return 'default'; } /** * @return Closure */ public static function ini() { return static function () { $filename = Helper::envNotEmpty('ALIBABA_CLOUD_CREDENTIALS_FILE'); if (!$filename) { $filename = self::getDefaultFile(); } if (!Helper::inOpenBasedir($filename)) { return; } if ($filename !== self::getDefaultFile() && (!\is_readable($filename) || !\is_file($filename))) { throw new RuntimeException( 'Credentials file is not readable: ' . $filename ); } $file_array = \parse_ini_file($filename, true); if (\is_array($file_array) && !empty($file_array)) { foreach (\array_change_key_case($file_array) as $name => $configures) { Credentials::set($name, $configures); } } }; } /** * Get the default credential file. * * @return string */ public static function getDefaultFile() { return Helper::getHomeDirectory() . DIRECTORY_SEPARATOR . '.alibabacloud' . DIRECTORY_SEPARATOR . 'credentials'; } /** * @return Closure */ public static function instance() { return static function () { $instance = Helper::envNotEmpty('ALIBABA_CLOUD_ECS_METADATA'); if ($instance) { Credentials::set( self::getDefaultName(), [ 'type' => 'ecs_ram_role', 'role_name' => $instance, ] ); } }; } }