【python】调用sm.ms图床api接口,实现上传图片并返回url
图床简介
sm.ms网站提供免费的图床服务。单图上传大小限制5MB,每次最多上传10张,支持多种图片链接格式和api接口调用。
获取令牌
- 注册账号并登录,点击User-Dashboard

- 点击API Token,点击Generate Secret Token

- 记住或复制你的令牌,上传图片的时候会用到
cMZkqPKLXfroLwwGBqpYtunwkKm6BvUp
测试样例

安装依赖
pip3 install requests
上传图片
- 将图片路径作为参数传给upload函数,如我这里的
anime.png - 将
Authorization后面的字符串改为你之前获取的令牌字符串
import requests
import json
def upload(path):
headers = {'Authorization': 'cMZkqPKLXfroLwwGBqpYtunwkKm6BvUp'}
files = {'smfile': open(path, 'rb')}
url = 'https://sm.ms/api/v2/upload'
res = requests.post(url, files=files, headers=headers).json()
print(json.dumps(res, indent=4))
if __name__ == "__main__":
upload('anime.png')
结果输出
可以看到服务器成功的响应了我们的上传请求,并返回了url链接https://i.loli.net/2020/09/16/FWzobx3PcRhGEJ7.png
{
"success": true,
"code": "success",
"message": "Upload success.",
"data": {
"file_id": 0,
"width": 1600,
"height": 900,
"filename": "anime.png",
"storename": "FWzobx3PcRhGEJ7.png",
"size": 1441300,
"path": "/2020/09/16/FWzobx3PcRhGEJ7.png",
"hash": "AH8BbaWrcwZEPROqpFkC56h1mu",
"url": "https://i.loli.net/2020/09/16/FWzobx3PcRhGEJ7.png",
"delete": "https://sm.ms/delete/AH8BbaWrcwZEPROqpFkC56h1mu",
"page": "https://sm.ms/image/FWzobx3PcRhGEJ7"
},
"RequestId": "DB695918-3624-4026-AE82-2AE70B630708"
}
温馨提示
如果你只想输出url链接,请将代码中的print(json.dumps(res, indent=4))改为print(res['data']['url'])
引用参考
sm.ms图床api文档完整版python实现:python-sm.ms-api
【python】调用sm.ms图床api接口,实现上传图片并返回url的更多相关文章
- Excel催化剂开源第34波-SM.MS图床API调用(用POST上传multipart/form-data内容)
日常做网抓数据,都是以GET请求为主,偶尔遇到需要POST请求的,一般POST的参数只是一串字符串就可以了,通过构造字符串也很容易完成,但此次SM.MS的API接口要求是Content-Type: m ...
- Typora + picgo + sm.ms 图床设置笔记
Typora + picgo + sm.ms 图床设置笔记 编辑于2020-03-26 本文部分内容在作者教程的基础上进行了二次编辑,如有重复,纯属必然 在此感谢大佬们的无私付出与分享 之前 用了 g ...
- 用Python实现一个Picgo图床工具
PyPicGo PyPicGo 是一款图床工具,是PicGo是Python版实现,并支持各种插件自定义插件,目前PyPicGo自带了gitee.github.SM.MS和七牛云图传,以及rename. ...
- python调用腾讯云短信接口
目录 python调用腾讯云短信接口 账号注册 python中封装腾讯云短信接口 python调用腾讯云短信接口 账号注册 去腾讯云官网注册一个腾讯云账号,通过实名认证 然后开通短信服务,创建短信应用 ...
- 后端API接口的错误信息返回规范
前言 最近我司要制定开发规范.在讨论接口返回的时候,后端的同事询问我们前端,错误信息的返回,前端有什么意见? 所以做了一些调研给到后端的同事做参考. 错误信息返回 在使用API时无可避免地会因为各种情 ...
- 发现一个微博图床API和图片上传代码
网上寻到一款微博图床的插件,然后顺藤摸瓜找到了原作者的API代码. API文件: <?php /** * 上传图片到微博图床 * @author Youngxj & mengkun &a ...
- Spring Boot 无侵入式 实现RESTful API接口统一JSON格式返回
前言 现在我们做项目基本上中大型项目都是选择前后端分离,前后端分离已经成了一个趋势了,所以总这样·我们就要和前端约定统一的api 接口返回json 格式, 这样我们需要封装一个统一通用全局 模版api ...
- 关于使用阿里OSS服务搭建图床和使用PicGO上传图片到图床
最近喜欢上了使用markdown来写博客,可是markdown的图片却是本地的,如果我要发博客,那么又要重复截图了.于是干脆弄了个图床,本地截图的时候上传到图床,markdown中的代码结果也是图床里 ...
- Python Tornado搭建高并发Restful API接口服务
Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快能实现高并发.得利于其 非阻塞的方式和对epoll的运用,Torn ...
随机推荐
- 图论算法(三) 最短路SPFA算法
我可能要退役了…… 退役之前,写一篇和我一样悲惨的算法:SPFA 最短路算法(二)SPFA算法 Part 1:SPFA算法是什么 其实呢,SPFA算法只是在天朝大陆OIers的称呼,它的正统名字叫做: ...
- JetCache埋点的骚操作,不服不行啊
阐述背景 缓存是应对高并发绝对的利器,在很多业务场景允许的情况下,都可以使用缓存来提供性能. 既然用了缓存,那对缓存进行监控必不可少.比如缓存加载耗时,新增耗时等. 在 JetCache 中进行埋点操 ...
- 在.NET Core中使用MongoDB明细教程(2):使用Filter语句检索文档
在上篇文章我们介绍了一些驱动程序相关的基础知识,以及如何将文档插入到集合中.在这篇文章中,我们将学习如何从数据库中检索文档. 作者:依乐祝 译文地址:https://www.cnblogs.com/y ...
- linux 修改 mac
ifconfig eth0 hw ether fa::3d:c3:: 或 ip link set dev eth0 address fa::3d:c3::
- Hadoop上小文件如何存储?
Block是文件块,HDFS中是以Block为单位进行文件的管理的,一个文件可能有多个块,每个块默认是3个副本,这些块分别存储在不同机器上.块与文件之前的映射关系会定时上报Namenode.HDFS中 ...
- hyperledger-fabric环境快速搭建踩坑集锦(实用)
安装docker 及 docker-compose 安装docker没什么好说的,一部分教程都给出了指令,在这里就不谈了. docker-compose不同的教程给出了不同的方法,在这里介绍一种极为快 ...
- js获取N天后的日期
这个javascript函数是获取当前时间前后N天日期的方法,可以得到昨天,今天,明天,一月前,三月前,半年前,一年前的日期,只要修改参数就可以实现得到任何一个天数.具体用法如下: function ...
- private protected internal public
//C#中的访问修饰符: //private,私有访问修饰符,被private访问修饰符修饰的成员只有在当前类的内部可以访问,其他地方一律不能访问[类中成员,如果不写访问修饰符则默认都是私有的] // ...
- dump 内存分析
CPU 及内存占用过大,这也是我们日常调试工作中最常见的两个问题 首先附上两链接 一个样例演示 http://www.cnblogs.com/xioxu/archive/2009/09/04/1560 ...
- Spine学习九 - 冰冻效果
想象这样一个效果,一个人被冰霜攻击命中,然后这个人整个就被冰冻了,那么spine动画要如何实现这个效果呢? 1.首先需要一个Spine动画,这个动画应该是相对静止的,因为人物已经被冰冻了,那么这个人儿 ...