trovebox照片服务的官方python客户端库

trovebox的Python项目详细描述


(以前称为openphoto python)

Build StatusCoverage StatusPython Package Index (PyPI)

这个库可以与任何trovebox服务器一起工作 self-hosted,或使用位于 trovebox.com。 它通过一个简单的 Python药。

安装

pip install trovebox

文件

Trovebox API Documentation 完整的api文档,包括python示例。

所有的发展都发生在openphoto-python GitHub site

凭证

要完全访问照片,需要创建以下配置 文件位于~/.config/trovebox/default

# ~/.config/trovebox/default
host = your.host.com
consumerKey = your_consumer_key
consumerSecret = your_consumer_secret
token = your_access_token
tokenSecret = your_access_token_secret

config_file开关允许您指定不同的配置文件。

要获取您的凭据:

  • 登录Trovebox网站
  • 单击右上角的箭头并选择“设置”
  • 单击“创建新应用程序”按钮
  • 单击新创建的应用程序旁边的“查看”链接

使用库

from trovebox import Trovebox
client = Trovebox()
photos = client.photos.list()
photos[0].update(tags=["tag1", "tag2"])
print(photos[0].tags)

trovebox python类层次结构反映了 Trovebox API终结点布局。 例如,上面示例中的调用使用以下api端点:

  • client.photos.list() -> /photos/list.json
  • photos[0].update()->/photo/<id>/update.json

您还可以使用GET/POST方法在较低级别访问API:

resp = client.get("/photos/list.json")
resp = client.post("/photo/62/update.json", tags=["tag1", "tag2"])

API版本控制

将应用程序锁定到trovebox api的特定版本可能会很有用。 这可以确保将来的api更新不会导致意外的中断。 为此,请按如下方式配置Trovebox客户端:

client.configure(api_version=2)

SSL验证

如果通过https连接到trovebox服务器,则会自动验证其ssl证书。 您可以将Trovebox客户端配置为绕过此验证步骤:

client.configure(ssl_verify=False)

命令行工具

您可以从shell运行对trovebox api的命令!

以下是可以传递给shell程序的选项:

--help         # Display help text
-c config_file # Either the name of a config file in ~/.config/trovebox/ or a full path to a config file
-h hostname    # Overrides config_file for unauthenticated API calls
-e endpoint    # [default=/photos/list.json]
-X method      # [default=GET]
-F params      # e.g. -F 'title=my title' -F 'tags=mytag1,mytag2'
-p             # Pretty print the json
-v             # Verbose output
--version      # Display the current version information

命令行示例

将公共照片上载到`~/.config/trovebox/default`

中指定的主机
trovebox -p -X POST -e /photo/upload.json -F 'photo=@/path/to/photo/jpg' -F 'permission=1'
{
    "code":201,
    "message":"Photo 1eo uploaded successfully",
    "result":{
        "actor":"user@example.com",
        "albums":[],
        ...
        ...
    }
}

从current.trovebox.com获取缩略图URL(未经身份验证的访问):

trovebox -h current.trovebox.com -p -e /photo/62/view.json -F 'returnSizes=20x20'
{
    "code":200,
    "message":"Photo 62",
    "result":{
        "actor":"",
        "albums":[
            "1"
        ],
        ...
        ...
        "path20x20":"http://current.trovebox.com/photo/62/create/36c0a/20x20.jpg",
        "pathBase":"http://awesomeness.trovebox.com/base/201203/7ae997-Boracay-Philippines-007.jpg",
        "permission":"1",
        "photo20x20":[
            "http://current.trovebox.com/photo/62/create/36c0a/20x20.jpg",
            13,
            20
        ],
        ...
        ...
    }
}

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

推荐PyPI第三方库


热门话题
java InputStream对象在声明后关闭   java未定义名为“transactionManager”的bean重命名transactionManager   java“jar”命令何时会拒绝将类添加到java中。jar文件?   java JPA标准依赖WHERE子句   安卓中从SD卡读取文本文件时出现java错误   java直接启用类似位置的权限   使用@WebMvcTest和Mockito-BDDMockito对SpringBoot-RestController进行java测试   java JSESSIONID存储在哪里?   java jtextarea鼠标事件覆盖容器鼠标事件   java DRL无法解析动态加载的类   java是从一个方法返回多个对象的最简单方法   java自定义按钮/编辑框是否不可见?   java GUI如何在保存用户输入的同时在面板或框架之间切换   swing Java自定义JSlider不会更新   GridBagLayout中的java超过1个JPanel   java从ProjectReactor中的flux中采样除第一个元素外的所有元素   Java泛型和泛型类型   Java代码生成宽指令的jvm