# fluent-cart/1.5.4/app/Services/FileSystem/Drivers/S3/S3InputValidator.php

FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler, version 1.5.4. 90 lines.

- Page: https://pluginprobe.com/plugins/fluent-cart/1.5.4/code/app/Services/FileSystem/Drivers/S3/S3InputValidator.php
- Raw: https://pluginprobe.com/plugins/fluent-cart/1.5.4/raw/app/Services/FileSystem/Drivers/S3/S3InputValidator.php
- Modified: 2026-04-22T15:34:22+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/fluent-cart/1.5.4/code/app/Services/FileSystem/Drivers/S3/S3InputValidator.php#L10-L20`.

```php
<?php

namespace FluentCart\App\Services\FileSystem\Drivers\S3;

class S3InputValidator
{
    private const REGION_PATTERN = '/^(af|ap|ca|cn|eu|il|me|mx|sa|us)(-gov)?-[a-z0-9-]+-\d+$/';

    public static function isValidBucket($bucket): bool
    {
        if (!is_string($bucket)) {
            return false;
        }

        $bucket = trim($bucket);

        if ($bucket === '' || strlen($bucket) < 3 || strlen($bucket) > 63) {
            return false;
        }

        if (!preg_match('/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/', $bucket)) {
            return false;
        }

        if (strpos($bucket, '..') !== false || strpos($bucket, '.-') !== false || strpos($bucket, '-.') !== false) {
            return false;
        }

        if (preg_match('/^\d+\.\d+\.\d+\.\d+$/', $bucket)) {
            return false;
        }

        return true;
    }

    public static function isValidRegion($region): bool
    {
        if (!is_string($region)) {
            return false;
        }

        $region = trim($region);

        if ($region === '' || strlen($region) > 32) {
            return false;
        }

        return (bool) preg_match(self::REGION_PATTERN, $region);
    }

    public static function validateBucket($bucket)
    {
        if (self::isValidBucket($bucket)) {
            return true;
        }

        return new \WP_Error(
            'invalid_bucket',
            __('Invalid S3 bucket name.', 'fluent-cart')
        );
    }

    public static function validateRegion($region)
    {
        if (self::isValidRegion($region)) {
            return true;
        }

        return new \WP_Error(
            'invalid_region',
            __('Invalid S3 region.', 'fluent-cart')
        );
    }

    public static function validateBucketAndRegion($bucket, $region)
    {
        $bucketValidation = self::validateBucket($bucket);
        if (is_wp_error($bucketValidation)) {
            return $bucketValidation;
        }

        $regionValidation = self::validateRegion($region);
        if (is_wp_error($regionValidation)) {
            return $regionValidation;
        }

        return true;
    }
}

```
