与运行在Synology NAS上的照片站通信的PythonAPI。
photostation的Python项目详细描述
与运行在Synology NAS上的Photo Station通信的PythonAPI。照片和视频通过其web api直接上传到photostation,其中包含各种元数据,包括评级、标题、描述和gps坐标。
此模块上载原始文件,并允许Synology处理所需的缩略图版本。这在Synology DS916+上运行良好,但在处理器速度较慢的机型上可能太慢。
支持的功能:
- 登录到您的共享或个人照片站
- 列出相册内容
- 自动创建丢失的相册
- 添加新照片 更新现有照片的元数据
- 如果时间戳或文件大小不同,则更新照片二进制文件
- 删除照片
使用运行DSM 6.1和照片站6.7.1的概要DS916+进行测试。应该也适用于旧版本,但您的里程可能会有所不同。
安装
pip install photostation
用法
from photostation import PhotoStationService, SynologyException import requests try: # login to Photo Station and set up root album service = PhotoStationService('https://USERNAME:PASSWORD@xyz.synology.me/photo/webapi/', 'root-album') # get reference to album and create it if missing album = service.album('2017/05/13', create=True) # list album content (subalbums, photos, videos) print(album.items) # add photo reference inside album photo = album.create_item( filename = 'testimage.jpg', # original filename filetype = 'photo', # photo or video created = 1494603121336, # timestamp of photo capture modified = 1494603121336 # optional timestamp to compare if existing binary has changed filesize = 1000, # optional filesize to compare if existing binary has changed title = '', # optional title description = '', # optional description rating = 0, # optional starts from 0 to 5 latitude = 60, # optional coordinates for videos longitude = 20) # optional coordinates for videos # update metadata of existing photos merged = photo.merge() if merged: print('metadata was updated or already up to date, deleting photo') photo.delete() else: # upload new file stream = requests.get('https://dummyimage.com/600x400/000/fff', stream=True) photo.save_content(stream) except SynologyException as se: print se.value