与运行在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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Hibernate:合并并删除,而不是从数据库中删除实体对象   java如何在WebFilter中有条件地从Mono返回?   java调用mysql c3p0函数   可执行jar Java jar文件加载错误:无法找到或加载主类。类导致的错误:java。lang.ClassNotFoundException:某些东西。班   java如何减少/更改爬网后的延迟?   从其他语言(如Java、PHP、Perl、Python等)调用C/C++代码的最佳方式是什么?   java如何模拟影响对象的void返回方法   当我试图在ubuntu上启动JavaScala时,它抛出了一个异常   java如何正确输出游戏   理解java和C++背景下的JavaScript原型   oracle如何将Java函数转换为postgresql函数   多线程为什么我的java服务器程序在超时后不退出?   java如何使listView中的按钮在单击时工作?   试图将这个嵌套的java forloop转换为python,但我不知道如何转换。有没有一种方法可以像这样为循环执行if语句?   java幂函数在计算器中的应用   如何在java中滚动浏览mysql数据库   在Spring Boot应用程序的JUnit测试中,java没有符合自动连线JPA存储库要求的bean   java如何使用扩展类的JPanel对象?