# Wie wird der Name eines Mediums intern vergeben, dass per Api hochgeladen wurde?

**URL:** <https://forum.shopware.com/t/wie-wird-der-name-eines-mediums-intern-vergeben-dass-per-api-hochgeladen-wurde/59088>\
**Category:** Programmierung\
**Created:** [15. April 2019 um 11:35 UTC](https://forum.shopware.com/t/wie-wird-der-name-eines-mediums-intern-vergeben-dass-per-api-hochgeladen-wurde/59088 "2019-04-15T11:35:04Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![steinm](https://avatars.discourse-cdn.com/v4/letter/s/b3f665/32.png) [@steinm](https://forum.shopware.com/u/steinm)\
**Post date:** [15. April 2019 um 11:35 UTC](https://forum.shopware.com/t/wie-wird-der-name-eines-mediums-intern-vergeben-dass-per-api-hochgeladen-wurde/59088/1 "2019-04-15T11:35:04Z")

</div>

Ich lade ein JPEG-Bild mittels post über die RestAPI hoch (/api/media). Als paramter wird lediglich ‘name’, ‘album’, ‘description’ und ‘file’ übergeben. ‘file’ ist ein Dateiname relativ zur Wurzel im Dateisystem. ‘album’ ist auf -1 gesetzt. ‘name’ ist der Dateiname wie er auch in ‘file’, nur halt ohne den Pfad.

Der Upload klappt wunderbar und das Bild findet man danach auch in den meisten Fällen unter genau dem Namen in der Medienverwaltung wieder, wie beim Upload angegeben. Das klappt bei mehreren tausend Bildern, aber bei einigen wählt Shopware einen anderen Namen. So wird aus&nbsp;10029302\_F.jpg&nbsp;10029302\_FjqYGI9dVlg3rK.jpg, wohingegen&nbsp;10029302\_B.jpg unverändert übernommen wird. Aus&nbsp;10032300\_B.jpg wird aber z.B.&nbsp;10032300\_B33WN71XrOPULG.jpg

Ich frage mich warum Shopware hier einen anderen Namen wählt, obwohl der Ursprungsname eindeutig ist. Welches Kriterium wird hier herangezogen?

Grundsätzlich könnte es mir egal sein, wie Shopware die Medien intern benennt, nur fehlt mir dann eine Möglichkeit festzustellen, ob ein Bild bereits hochgeladen wurde. Zur Zeit nutze ich den Namen und die Dateigröße um festzustellen, ob ein Bild bereits in der Medienverwaltung existiert. Schöner wäre die MD5-summe der Bilddatei, aber wie bekomme ich die mit dem Bild abgespeichert und wieder abgerufen?

Uwe

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [15. April 2019 um 12:15 UTC](https://forum.shopware.com/t/wie-wird-der-name-eines-mediums-intern-vergeben-dass-per-api-hochgeladen-wurde/59088/2 "2019-04-15T12:15:48Z")

</div>

> So wird aus&nbsp;10029302\_F.jpg&nbsp;10029302\_FjqYGI9dVlg3rK.jpg

Dieses Verhalten kommt eigentlich nur, wenn der Name zum Bild schon vorhanden ist bzw. das eigentliche Bild vielleicht nicht ersetzt sondern noch mal neu hochgeladen wurde.&nbsp;

---

<div class="post-metadata">

**Author:** ![steinm](https://avatars.discourse-cdn.com/v4/letter/s/b3f665/32.png) [@steinm](https://forum.shopware.com/u/steinm)\
**Post date:** [15. April 2019 um 12:24 UTC](https://forum.shopware.com/t/wie-wird-der-name-eines-mediums-intern-vergeben-dass-per-api-hochgeladen-wurde/59088/3 "2019-04-15T12:24:38Z")

</div>

Das hätte ich auch vermutet, aber dann müsste es unter dem Namen in der Tabelle s\_media auch zu finden sein. Ein&nbsp;

```
select * from s_media where name like '10029302_F%';

```

liefert aber nur das Bild mit dem langen Namen. Ich habe den Quellcode schon nach der Stelle durchsucht, wo der interne Name generiert wird, konnte aber Nichts finden. Irgendwo muss im Quellcode entschieden werden, ob der gelieferte Name passt oder ein neuer Name erzeugt wird.

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [16. April 2019 um 14:57 UTC](https://forum.shopware.com/t/wie-wird-der-name-eines-mediums-intern-vergeben-dass-per-api-hochgeladen-wurde/59088/4 "2019-04-16T14:57:13Z")

</div>

Wie R4M sagte, passiert dies, wenn die Datei schon existiert. Dabei ist wichtig, dass die Datei im Dateisystem liegt und nicht die Meta-Informationen in der Datenbank. Ich nehme mal an, dass du ein paar verwaiste Medien Dateien ohne Datenbank eintrag hast. Leider gibts in Shopware keinen Cronjob/CLI Command um das aufzuräumen.

Die entsprechende Stelle im Code findest du hier:

> <https://github.com/shopware/shopware/blob/5.5/engine/Shopware/Models/Media/Media.php#L1055>
