Wenn beim Versuch Shopware zu updaten, der Prozess-Dialog ewig läuft und dann irgendwann das Backenend einfach neu lädt, kann es am media/ Verzeichnis liegen. Ich hab, als das Problem bei meinem lokalen Entwickler-Shop auftrat erst einmal alle leeren Verzeichnisse entfernt mit
sudo find media/ -type d -empty -delete
Dann noch mal die Rechte für die Dateien neu gesetzt (wegen über SCP hochgeladene Plugins oder so) und nachdem das Backend zwei mal neugeladen wurde, lief das Update sofort und ohne Probleme an. Hat mich zwar einige Stunden gekostet, bis alles soweit war, aber endlich wieder Updaten zu können ist es auch wert.
Falls man mal wie in der REST-API ein Bild per URL importieren möchte. Das kann der Fall sein, wenn man sich einen eigenen Importer für ein Format wie BMECat oder so geschrieben hat.
/** @var $media Media */
$media = $this->getMediaResource()->internalCreateMediaByFileLink(
$imageData['imgUrl']
);
$image->setMain(1); //1 is primary image, 2 is the rest
$image->setMedia($media);
$image->setArticle($article);
$image->setPath($media->getName());
$image->setExtension($media->getExtension());
$image->setDescription($media->getDescription());
$image->setPosition($article->getImages()->getCount());
Ist an sich ganz einfach und funktioniert sehr gut.
Die URL kann vom Typ HTTP, HTTPS, FTP, FTPS und FILE sein.