]> BookStack Code Mirror - bookstack/commitdiff
Added check for s3 bucket name to choose shortest url
authorDan Brown <redacted>
Sun, 10 Jul 2016 09:28:05 +0000 (10:28 +0100)
committerDan Brown <redacted>
Sun, 10 Jul 2016 09:28:05 +0000 (10:28 +0100)
app/Services/ImageService.php

index f645a06a5b71415622bbeff85515db2a352e5d02..c10e989f96a8284c319ee58c6a9eb7e655351559 100644 (file)
@@ -259,9 +259,15 @@ class ImageService
             $storageUrl = config('filesystems.url');
 
             // Get the standard public s3 url if s3 is set as storage type
+            // Uses the nice, short URL if bucket name has no periods in otherwise the longer
+            // region-based url will be used to prevent http issues.
             if ($storageUrl == false && config('filesystems.default') === 's3') {
                 $storageDetails = config('filesystems.disks.s3');
-                $storageUrl = 'https://' . $storageDetails['bucket'] . '.s3.amazonaws.com';
+                if (strpos($storageDetails['bucket'], '.') === false) {
+                    $storageUrl = 'https://' . $storageDetails['bucket'] . '.s3.amazonaws.com';
+                } else {
+                    $storageUrl = 'https://s3-' . $storageDetails['region'] . '.amazonaws.com/' . $storageDetails['bucket'];
+                }
             }
 
             $this->storageUrl = $storageUrl;