Temporary URLs

Temporary URL generation was added in 3.10

Flysystem can generate temporary URLs for files. Temporary URL provide access to files that may otherwise not be accessible directly by URL. These URLs expire after a given point in time, after which the URL becomes un-usable.

The following adapters have temporary URL generation capabilities:

  • AWS S3
  • Async AWS S3
  • Azure Blob Storage
  • Google Cloud Storage

Usage

$temporaryUrl = $filesystem->temporaryUrl('path/to/file.txt', $dateTimeOfExpiry);

You can override the temporary URL generation process by providing a TemporaryUrlGenerator instance to the Filesystem constructor.

use League\Flysystem\Config;
use League\Flysystem\Filesystem;
use League\Flysystem\UrlGeneration\TemporaryUrlGenerator;

$filesystem = new Filesystem(
    $adapter
    temporaryUrlGenerator: new class() implements TemporaryUrlGenerator
    {
        public function temporaryUrl(
            string $path,
            DateTimeInterface $expiresAt,
            Config $config
        ): string {
            // implement your own temporary URL generation strategy
        }
    }
);