public static function getInstance($region, $name, $key = null, $secret = null)
    {
        if (!self::$instance instanceof \JonnyW\AWSS3Assets\S3Bucket) {

            $args = array(
                'version' => 'latest',
                'region'  => $region
            );

            if (!empty($key) && !empty($secret)) {
                $args['credentials'] = new Credentials($key, $secret);
            }

            $client = new S3Client($args);

            self::$instance = new static(
                $client,
                $name
            );
        }

        return self::$instance;
    }