protected function uploadS3($source, $name) { if (!file_exists($source)) { throw new \ErrorException('File ' . $source . ' does not exist.'); } try { $connection = S3Client::factory(array('key' => env('S3_KEY'), 'secret' => env('S3_SECRET'))); $result = $connection->putObject(array('Bucket' => env('S3_BUCKET'), 'Key' => 'invoices/' . $name, 'Body' => file_get_contents($source), 'ContentType' => File::getMime($source), 'ACL' => 'public-read')); return $result['ObjectURL']; } catch (\Exception $e) { $this->setError($e->getMessage()); } return null; }