PHP - using static variables to store "client" for later use
Before going through advises just wanted to remind you can alternatively use Aws\Sdk class as a client factory.
Sample usage:

// The same options that can be provided to a specific client constructor can also be supplied to the Aws\Sdk class.
// Use the us-west-2 region and latest version of each client.
$sharedConfig = [
    'region' =&gt; 'us-west-2',
    'version' =&gt; 'latest'
];

// Create an SDK class used to share configuration across clients.
$sdk = new Aws\Sdk($sharedConfig);

// Create an Amazon S3 client using the shared configuration data.
$client = $sdk-&gt;createS3();


Observe AWS SDK for PHP guide, just in case you hadn't yet.They give a notation there:


  Note
  
  We highly recommended that you use the Sdk class to create clients if
  you're using multiple client instances in your application. The Sdk
  class automatically uses the same HTTP client for each SDK client,
  allowing SDK clients for different services to perform nonblocking
  HTTP requests. If the SDK clients don't use the same HTTP client, then
  HTTP requests sent by the SDK client might block promise orchestration
  between services.




But, proceeding with your approach, you have a variation of Singleton pattern (restricts the instantiation of a class to a single object, which can be useful when only one object is required across the system).In your case S3Helper acting as a factory producing/returning the same S3Client instance.

To prevent instantiation/cloning of S3Helper from the outer code you can close __construct, __clone (and even __wakeup) methods:

class S3Helper {
    ...
    private function __construct() { }
    private function __clone() { }


To eliminate multiple return statements in your static getClient() method use the following condition (set client if it's not set yet):

private static function getClient() {
    if (self::$client === null) {   # use strict comparison here
        $auth = self::getAuth();
        self::$client = new S3Client([
            'region' =&gt; 'eu-west-2',
            'version' =&gt; '2006-03-01',
            'endpoint' =&gt; $auth['endpoint'],
            'credentials' =&gt; [
                'key' =&gt; $auth['key'],
                'secret' =&gt; $auth['secret']
            ],
            'use_path_style_endpoint' =&gt; true
        ]);
    }
    return self::$client;
}