temporaryUrlCallback || ( $this->shouldServeSignedUrls && $this->urlGeneratorResolver instanceof Closure ); } /** * Get a temporary URL for the file at the given path. * * @param string $path * @param \DateTimeInterface $expiration * @param array $options * @return string */ public function temporaryUrl($path, $expiration, array $options = []) { if ($this->temporaryUrlCallback) { return $this->temporaryUrlCallback->bindTo($this, static::class)( $path, $expiration, $options ); } if (! $this->providesTemporaryUrls()) { throw new RuntimeException('This driver does not support creating temporary URLs.'); } $url = call_user_func($this->urlGeneratorResolver); return $url->to($url->temporarySignedRoute( 'storage.'.$this->disk, $expiration, ['path' => $path], absolute: false )); } /** * Specify the name of the disk the adapter is managing. * * @param string $disk * @return $this */ public function diskName(string $disk) { $this->disk = $disk; return $this; } /** * Indiate that signed URLs should serve the corresponding files. * * @param bool $serve * @param \Closure|null $urlGeneratorResolver * @return $this */ public function shouldServeSignedUrls(bool $serve = true, ?Closure $urlGeneratorResolver = null) { $this->shouldServeSignedUrls = $serve; $this->urlGeneratorResolver = $urlGeneratorResolver; return $this; } }