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第三方库


热门话题
regex Java split(),使用包含特定字符的整个单词作为分隔符   java无法启动发现(Android附近连接API v2)   多线程Java:producerconsumer两个线程停止工作,冻结   java XDocReport:生成的docx文档错误“Word在尝试打开文件时遇到错误”   安卓 java。ClassCastException:java。util。无法将HashMap强制转换为com。保罗。ImapNotes。杂项。OneNote   找不到java CassandraSQLContext密钥   java重命名Derby模式   java是否可以扩展使用生成器模式和私有构造函数的类?   java如何获取Hotmail验证码图像   如何用Java在项目文件夹中创建文件?   java JOptionPane取消按钮和获取输入   变量如何打开equals语句以接受Java中的多个参数?   Ping url并获取java中的状态   tokenize是否有任何基于Java的智能单词标记器可以对句子中的相邻单词进行标记?   java如何从纹理下删除上面的纹理?   java递归除以3   弗莱希指数问题(Java)   Java正则表达式模式匹配在第二次出现时不起作用