- Mitglied seit
- 27. Jan 2014
- Beiträge
- 43
- Punkte für Reaktionen
- 4
- Punkte
- 8
Zur Zeit experimentiere ich mit der Synology Photos API.
ZIEL: eine Website soll direkten Zugriff auf Thumbnails von öffentlich freigegebenen Verzeichnissen und Alben erhalten.
Für Ordner im Freigegebenen Bereich [shared space], die auf Öffentlich - Jeder kann mit Link herunterladen eingestellt sind, klappt das mittels API-Aufrufen prima.
Ohne auf der DS angemeldet zu sein, bekommt man mit der ersten Zeile eine Liste von Bildern eines Verzeichnis (folder_id=608) ausgeben.
Mit der zweiten Zeile wird ein einzelnes Bild (id=40808; den cache_key bekommt man über die Ausgabe von additional=["thumbnail"] im vorangegangen Aufruf) im Browser angezeigt.
PROBLEM:
Für freigegebene Alben funktioniert das im Prinzip ähnlich, allerdings muss eine Authentifizierung über die Freigabe-Passphrase (z.B. "EkPUCJLDI") erfolgt sein.
Hat man z.B. einen Freigabe-Link
Das funktioniert allerdings nur, wenn man zuvor ein Cookie mit dem key sharing_sid vom Server erhalten hat. Bei Aufruf des Freigabe-Links
Mein Problem ist nun, wie komme ich an das Cookie mit einem API-Aufruf ran? Da komme ich nicht weiter.
Hintergrundinformation:
Von einer Website greife ich derzeit auf Bilder in öffentlich freigebenen Ordnern auf der PhotoStation (DSM6) zu. Hierzu lege ich extra Verzeichnisse an, die nur die Fotos enthalten, die auch öffentlich zugänglich sein sollen. Das ginge so ähnlich auch mit Synology Photos (leider ohne die Möglichkeit, das PhotoStation-Javascript in einen iFrame einzubinden).
Beim Umstieg auf Synology Photos würde ich aber gerne auf freigegebene Alben umstellen. In den Alben könnte ich von den Original-Verzeichnissen nur jene Fotos referenzieren, die auch öffentlich zugänglich sein sollen. Damit würde ich mir die doppelte Speicherung der Bilder sparen.
ZIEL: eine Website soll direkten Zugriff auf Thumbnails von öffentlich freigegebenen Verzeichnissen und Alben erhalten.
Für Ordner im Freigegebenen Bereich [shared space], die auf Öffentlich - Jeder kann mit Link herunterladen eingestellt sind, klappt das mittels API-Aufrufen prima.
Code:
https://<IP_ADDRESS>/photo/webapi/entry.cgi?api=SYNO.FotoTeam.Browse.Item&version=1&method=list&offset=0&limit=100&folder_id=608&additional=["thumbnail"]
https://<IP_ADDRESS>/photo/mo/sharing/webapi/entry.cgi?api=SYNO.FotoTeam.Thumbnail&method=get&version=1&id=40808&cache_key=40808_1633659236&type=unit&size=sm
Mit der zweiten Zeile wird ein einzelnes Bild (id=40808; den cache_key bekommt man über die Ausgabe von additional=["thumbnail"] im vorangegangen Aufruf) im Browser angezeigt.
PROBLEM:
Für freigegebene Alben funktioniert das im Prinzip ähnlich, allerdings muss eine Authentifizierung über die Freigabe-Passphrase (z.B. "EkPUCJLDI") erfolgt sein.
Hat man z.B. einen Freigabe-Link
https://<IP_ADDRESS>/photo/mo/sharing/EkPUCJLDI
, dann ruft man ein Bild über die API z.B. so ab:
Code:
https://<IP_ADDRESS>/photo/mo/sharing/webapi/entry.cgi?id=25752&cache_key="25752_1633653385"&type="unit"&size="sm"&passphrase="EkPUCJLDI"&api="SYNO.Foto.Thumbnail"&method="get"&version=1&_sharing_id="EkPUCJLDI"
https://<IP_ADDRESS>/photo/mo/sharing/EkPUCJLDI
erhält man ein solches Cookie.Mein Problem ist nun, wie komme ich an das Cookie mit einem API-Aufruf ran? Da komme ich nicht weiter.
Hintergrundinformation:
Von einer Website greife ich derzeit auf Bilder in öffentlich freigebenen Ordnern auf der PhotoStation (DSM6) zu. Hierzu lege ich extra Verzeichnisse an, die nur die Fotos enthalten, die auch öffentlich zugänglich sein sollen. Das ginge so ähnlich auch mit Synology Photos (leider ohne die Möglichkeit, das PhotoStation-Javascript in einen iFrame einzubinden).
Beim Umstieg auf Synology Photos würde ich aber gerne auf freigegebene Alben umstellen. In den Alben könnte ich von den Original-Verzeichnissen nur jene Fotos referenzieren, die auch öffentlich zugänglich sein sollen. Damit würde ich mir die doppelte Speicherung der Bilder sparen.