用Python将PDF文件转换成图片
这个问题其实不是太复杂,可以通过在线的工具或者付费的工具完成,但是在线服务需要将文件上传到别人手里,而付费工具一般需要买会员,仅仅用一下就开个会员实在麻烦,再者批量搞起来也不方便,所以搜索了一下相关代码,代码是Python语言。
这个问题其实不是太复杂,可以通过在线的工具或者付费的工具完成,但是在线服务需要将文件上传到别人手里,而付费工具一般需要买会员,仅仅用一下就开个会员实在麻烦,再者批量搞起来也不方便,所以搜索了一下相关代码,代码是Python语言。
这应该是Pingora
源码阅读的最后一篇文章,之前介绍了Pingora
中两个比较重要的概念, Server
和Service
, 本篇文章着重于监听服务的钩子函数, 这也是我们主要写业务代码的地方。
上次主要阅读了Pingora
的Server
部分的代码, 本文阅读Pingora
另一个比较重要的部分Service
, Pingora
内置两种服务background(后台)和Listening(监听), 本文着重后者。
要想深入Pingora
应该是需要阅读源代码的,所以分析一下源代码,虽然Pingora
没有提供丰富的示例,但是提供了一些不错的文档,比如它的internals.md
文档,提供了很多细节和示意图,本系列文章会引用很多其中的示意图,Pingora
的源码分析应该会分为2篇文章或更多。
Pingora
一直是我比较期待的项目,所以写个入门系列教程吧。之前研究过一些其他产品,比如nginx
, nginx-ingress
, apisix
, bfe
等, 前三者植入业务基本靠lua
或者说openresty
而bfe
的社区实在是一言难尽, 所以我认为Pingora
会成为Rust的明星项目,虽然没达到预期,但至少提供了一个框架,一个社区。
模板引擎很多时候还是很有用的,无论是后端渲染网页还是生成一些文本,其中以Jinja
比较出名,而本文的Rust
库askama
正是Jinja
的Rust
版实现,如果你对Jinja
的语法比较熟悉的话,使用askama
应该不会太难上手。
除非是为了学习,不然数据的增删改查写起来是很无聊的,所以出现了相关的代码库,将这些操作给封装起来,Rust
也是有类似的框架的,而且不止于此,比如本文的Loco.rs
它提供类似Ruby on Rails
的相关功能,可以很快的搭建起来一个后台。
这篇文章的内容其实和之前的文章《用Python发一封图文并茂的邮件》差不多,跟之前不同之处在于之前是使用Python来完成邮件的发送任务,而本文使用Rust发送邮件而已。
当服务暴露在公网的时候,要时刻注意安全,因为会有各种爆破工具在网上不间断的无差别攻击,所以需要做一定的防护措施,比如使用fail2ban
这样的服务来屏蔽一些恶意流量,而fail2ban
的逻辑并不复杂,所以用Rust
写一个玩玩,就当练练手了。
本文主要是对之前reqwest
库的一个简单的扩展,通过写一个简单的爬虫项目来练习练习Rust, 爬虫有用也有趣,但是不要给目标网站造成过大的压力,否则可能会触犯法律,切记切记。