@@ -178,41 +178,83 @@ function logError(Log $log, Throwable $error, string $action, Logger $logger = n
178178
179179function getStorageDevice (string $ root ): Device
180180{
181- $ connection = \strval ( App::getEnv ('OPR_EXECUTOR_CONNECTION_STORAGE ' , '' ) );
182-
183- $ acl = ' private ' ;
184- $ device = '' ;
185- $ accessKey = '' ;
186- $ accessSecret = '' ;
187- $ bucket = '' ;
188- $ region = '' ;
189-
190- try {
191- $ dsn = new DSN ( $ connection );
192- $ device = $ dsn-> getScheme ( );
193- $ accessKey = $ dsn ->getUser () ?? '' ;
194- $ accessSecret = $ dsn ->getPassword () ?? '' ;
195- $ bucket = $ dsn ->getPath () ?? '' ;
196- $ region = $ dsn ->getParam ( ' region ' ) ;
197- } catch ( \ Exception $ e ) {
198- Console:: warning ( ' Defaulting to Local storage due to error: ' . $ e -> getMessage ());
199- $ device = ' Local ' ;
200- }
181+ $ connection = App::getEnv ('OPR_EXECUTOR_CONNECTION_STORAGE ' , '' );
182+
183+ if (! empty ( $ connection )) {
184+ $ acl = 'private ' ;
185+ $ device = Storage:: DEVICE_LOCAL ;
186+ $ accessKey = '' ;
187+ $ accessSecret = '' ;
188+ $ bucket = '' ;
189+ $ region = '' ;
190+
191+ try {
192+ $ dsn = new DSN ( $ connection );
193+ $ device = $ dsn ->getScheme () ;
194+ $ accessKey = $ dsn ->getUser () ?? '' ;
195+ $ accessSecret = $ dsn ->getPassword () ?? '' ;
196+ $ bucket = $ dsn ->getPath () ?? '' ;
197+ $ region = $ dsn -> getParam ( ' region ' );
198+ } catch ( \ Exception $ e ) {
199+ Console:: warning ( $ e -> getMessage () . ' Invalid DSN. Defaulting to Local device. ' ) ;
200+ }
201201
202- switch ($ device ) {
203- case Storage::DEVICE_S3 :
204- return new S3 ($ root , $ accessKey , $ accessSecret , $ bucket , $ region , $ acl );
205- case Storage::DEVICE_DO_SPACES :
206- return new DOSpaces ($ root , $ accessKey , $ accessSecret , $ bucket , $ region , $ acl );
207- case Storage::DEVICE_BACKBLAZE :
208- return new Backblaze ($ root , $ accessKey , $ accessSecret , $ bucket , $ region , $ acl );
209- case Storage::DEVICE_LINODE :
210- return new Linode ($ root , $ accessKey , $ accessSecret , $ bucket , $ region , $ acl );
211- case Storage::DEVICE_WASABI :
212- return new Wasabi ($ root , $ accessKey , $ accessSecret , $ bucket , $ region , $ acl );
213- case Storage::DEVICE_LOCAL :
214- default :
215- return new Local ($ root );
202+ switch ($ device ) {
203+ case Storage::DEVICE_S3 :
204+ return new S3 ($ root , $ accessKey , $ accessSecret , $ bucket , $ region , $ acl );
205+ case STORAGE ::DEVICE_DO_SPACES :
206+ return new DOSpaces ($ root , $ accessKey , $ accessSecret , $ bucket , $ region , $ acl );
207+ case Storage::DEVICE_BACKBLAZE :
208+ return new Backblaze ($ root , $ accessKey , $ accessSecret , $ bucket , $ region , $ acl );
209+ case Storage::DEVICE_LINODE :
210+ return new Linode ($ root , $ accessKey , $ accessSecret , $ bucket , $ region , $ acl );
211+ case Storage::DEVICE_WASABI :
212+ return new Wasabi ($ root , $ accessKey , $ accessSecret , $ bucket , $ region , $ acl );
213+ case Storage::DEVICE_LOCAL :
214+ default :
215+ return new Local ($ root );
216+ }
217+ } else {
218+ switch (strtolower (App::getEnv ('OPR_EXECUTOR_STORAGE_DEVICE ' , Storage::DEVICE_LOCAL ) ?? '' )) {
219+ case Storage::DEVICE_LOCAL :
220+ default :
221+ return new Local ($ root );
222+ case Storage::DEVICE_S3 :
223+ $ s3AccessKey = App::getEnv ('OPR_EXECUTOR_STORAGE_S3_ACCESS_KEY ' , '' ) ?? '' ;
224+ $ s3SecretKey = App::getEnv ('OPR_EXECUTOR_STORAGE_S3_SECRET ' , '' ) ?? '' ;
225+ $ s3Region = App::getEnv ('OPR_EXECUTOR_STORAGE_S3_REGION ' , '' ) ?? '' ;
226+ $ s3Bucket = App::getEnv ('OPR_EXECUTOR_STORAGE_S3_BUCKET ' , '' ) ?? '' ;
227+ $ s3Acl = 'private ' ;
228+ return new S3 ($ root , $ s3AccessKey , $ s3SecretKey , $ s3Bucket , $ s3Region , $ s3Acl );
229+ case Storage::DEVICE_DO_SPACES :
230+ $ doSpacesAccessKey = App::getEnv ('OPR_EXECUTOR_STORAGE_DO_SPACES_ACCESS_KEY ' , '' ) ?? '' ;
231+ $ doSpacesSecretKey = App::getEnv ('OPR_EXECUTOR_STORAGE_DO_SPACES_SECRET ' , '' ) ?? '' ;
232+ $ doSpacesRegion = App::getEnv ('OPR_EXECUTOR_STORAGE_DO_SPACES_REGION ' , '' ) ?? '' ;
233+ $ doSpacesBucket = App::getEnv ('OPR_EXECUTOR_STORAGE_DO_SPACES_BUCKET ' , '' ) ?? '' ;
234+ $ doSpacesAcl = 'private ' ;
235+ return new DOSpaces ($ root , $ doSpacesAccessKey , $ doSpacesSecretKey , $ doSpacesBucket , $ doSpacesRegion , $ doSpacesAcl );
236+ case Storage::DEVICE_BACKBLAZE :
237+ $ backblazeAccessKey = App::getEnv ('OPR_EXECUTOR_STORAGE_BACKBLAZE_ACCESS_KEY ' , '' ) ?? '' ;
238+ $ backblazeSecretKey = App::getEnv ('OPR_EXECUTOR_STORAGE_BACKBLAZE_SECRET ' , '' ) ?? '' ;
239+ $ backblazeRegion = App::getEnv ('OPR_EXECUTOR_STORAGE_BACKBLAZE_REGION ' , '' ) ?? '' ;
240+ $ backblazeBucket = App::getEnv ('OPR_EXECUTOR_STORAGE_BACKBLAZE_BUCKET ' , '' ) ?? '' ;
241+ $ backblazeAcl = 'private ' ;
242+ return new Backblaze ($ root , $ backblazeAccessKey , $ backblazeSecretKey , $ backblazeBucket , $ backblazeRegion , $ backblazeAcl );
243+ case Storage::DEVICE_LINODE :
244+ $ linodeAccessKey = App::getEnv ('OPR_EXECUTOR_STORAGE_LINODE_ACCESS_KEY ' , '' ) ?? '' ;
245+ $ linodeSecretKey = App::getEnv ('OPR_EXECUTOR_STORAGE_LINODE_SECRET ' , '' ) ?? '' ;
246+ $ linodeRegion = App::getEnv ('OPR_EXECUTOR_STORAGE_LINODE_REGION ' , '' ) ?? '' ;
247+ $ linodeBucket = App::getEnv ('OPR_EXECUTOR_STORAGE_LINODE_BUCKET ' , '' ) ?? '' ;
248+ $ linodeAcl = 'private ' ;
249+ return new Linode ($ root , $ linodeAccessKey , $ linodeSecretKey , $ linodeBucket , $ linodeRegion , $ linodeAcl );
250+ case Storage::DEVICE_WASABI :
251+ $ wasabiAccessKey = App::getEnv ('OPR_EXECUTOR_STORAGE_WASABI_ACCESS_KEY ' , '' ) ?? '' ;
252+ $ wasabiSecretKey = App::getEnv ('OPR_EXECUTOR_STORAGE_WASABI_SECRET ' , '' ) ?? '' ;
253+ $ wasabiRegion = App::getEnv ('OPR_EXECUTOR_STORAGE_WASABI_REGION ' , '' ) ?? '' ;
254+ $ wasabiBucket = App::getEnv ('OPR_EXECUTOR_STORAGE_WASABI_BUCKET ' , '' ) ?? '' ;
255+ $ wasabiAcl = 'private ' ;
256+ return new Wasabi ($ root , $ wasabiAccessKey , $ wasabiSecretKey , $ wasabiBucket , $ wasabiRegion , $ wasabiAcl );
257+ }
216258 }
217259}
218260
0 commit comments