- Affected version
 - 2.2.4
 
\XFMG\Attachment\Media::onAssociation
		PHP:
	
	if ($tempMedia->thumbnail_date)
{
    $tempThumbPath = $tempMedia->getAbstractedTempThumbnailPath();
    $mediaThumbPath = $container->getAbstractedThumbnailPath();
    $tempFile = \XF\Util\File::copyAbstractedPathToTempFile($tempThumbPath);
    \XF\Util\File::copyFileToAbstractedPath($tempFile, $mediaThumbPath);
    $container->fastUpdate('thumbnail_date', $tempMedia->thumbnail_date);
    \XF\Util\File::deleteFromAbstractedPath($tempThumbPath);
}
if ($tempMedia->poster_date)
{
    $tempPosterPath = $tempMedia->getAbstractedTempPosterPath();
    $mediaPosterPath = $container->getAbstractedPosterPath();
    $tempFile = \XF\Util\File::copyAbstractedPathToTempFile($tempPosterPath);
    \XF\Util\File::copyFileToAbstractedPath($tempFile, $mediaPosterPath);
    $container->fastUpdate('poster_date', $tempMedia->poster_date);
    \XF\Util\File::deleteFromAbstractedPath($tempPosterPath);
}
	This code basically moves the files from
data://xfmg/temp to data://xfmg/thumbnail and data://xfmg/poster respectively by copying them to a tempfile, copying that tempfile to the new location and deleting the source.A more efficient approach would be
		PHP:
	
	if ($tempMedia->thumbnail_date)
{
    $tempThumbPath = $tempMedia->getAbstractedTempThumbnailPath();
    $mediaThumbPath = $container->getAbstractedThumbnailPath();
    \XF::fs()->move($tempThumbPath, $mediaThumbPath);
    $container->fastUpdate('thumbnail_date', $tempMedia->thumbnail_date);
}
if ($tempMedia->poster_date)
{
    $tempPosterPath = $tempMedia->getAbstractedTempPosterPath();
    $mediaPosterPath = $container->getAbstractedPosterPath();
    \XF::fs()->move($tempPosterPath, $mediaPosterPath);
    $container->fastUpdate('poster_date', $tempMedia->poster_date);
}
	This would allow the rename to take place without always having to download & upload the files (might still happen though if a rename can't be performed directly).