PublicCDNAdapter builds it's own URLs using Controller::join_links which does not explicitly produce an S3 compatible link due to lack of path encoding. For example if $path contains a + S3 treats this as a space, causing a 404.
This differs from PublicAdapter which builds links via the S3ClientInterface instead, in which paths are already escaped before being returned.
PublicCDNAdapter
builds it's own URLs usingController::join_links
which does not explicitly produce an S3 compatible link due to lack of path encoding. For example if$path
contains a+
S3 treats this as a space, causing a 404.This differs from
PublicAdapter
which builds links via theS3ClientInterface
instead, in which paths are already escaped before being returned.