最近在尝试使用Python的Django框架写一个类似OneIndex的项目练练手,功能基本都已经实现了,现在就差文件上传那块。
上传时先是写了一个小文件上传的demo,用的requests库,大文件打算使用aiohttp。

遇到的问题

文件上传之后,在OneDrive无法预览,下载后也出现视频文件无法解码,图片文件无法打开的情况。
但若使用Postman把文件放在body以binary的形式上传到OneDrive的话确没问题。

上传前后对比(文本打开).png
挑了一个视频文件,将上传前后的文件用文本形式打开查看会发现在开始和结束分别多了段字符串:

--ebffcc0c9b8816735607b6faa2c09076
Content-Disposition: form-data; name="file"; filename="text.txt"
......
......
--ebffcc0c9b8816735607b6faa2c09076--

- 阅读剩余部分 -

其实通过上一篇文章《使用Docker部署LNMP环境 —— Dockerfile》基本是可以搭建好一个LNMP的环境了。
这一篇算是进阶使用,主要是通过一个叫Docker Compose的工具来简化我们运行容器的操作,当然类似的工具还有Docker MachineDocker Swarm,本篇只讲Docker Compose

安装

参考官方文档
两条命令搞定

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

使用

从安装时使用的命令就能看到,Docker Compose的命令是 docker-compose
命令列表查阅Overview of docker-compose CLI
常用的基本就是ps、images看看信息,up、down运行容器,更多用法自行挖掘吧。

该工具简化容器运行操作,也就是之前说的将docker run命令也写到文件里交给Docker Compose来执行。
这些命令可以使用Docker Compose File里的命令代替并遵循其顺序结果以yml格式写到一个docker-compse.yml文件内。

- 阅读剩余部分 -

上一篇简单介绍了下Docker的常用指令和给出了nginx、PHP、Mysql镜像通过docker run启动容器的实例。
首先Dockerfile并不能代替docker run,Dockerfile主要是用来预执行部分命令并构建镜像。
然后使用 docker run 命令指定该镜像让运行容器时达到简化命令的目的。
然后通过docker build命令构建一个新的镜像,最后还是要用到docker run命令,配置参数,指定新构建的镜像运行容器。
为什么不能直接代替 docker run ? 我初步推测是因为如果使用了像-v,--network,--ip这些参数如果用来构建镜像,将毫无扩展性。
当然Dockerfile还有更多的高阶用法,之后自己挖掘...

- 阅读剩余部分 -

前言

大体分三部分:

  • 镜像与容器运行、进入、互通与网络
  • Dockerfile
  • docker-compose

基本是我的学习Docker的一个历程,从最麻烦(逐条命令输入)到看起来相应比较简便的方式(docker-compose.yml文件)构建一个LNMP环境。
因为也是学习没多长时间,尽量会在能力范围内对文章内的知识点进行描述和归纳,当然会有对应的官方文档。
除官方文档外的信息建议先自己思考下,本文仅个人的拙见,欢迎评论指正。

- 阅读剩余部分 -

最近在学Python,简单看了点特性和基础语法就开始自己写一个爬虫,目标是爬本博客。
项目github地址
因为写的时候参考的是github上的CrawlerHot爬虫项目,里面用到了with as语法写入文件,
开始只是初略了解到了如果用with as写文件的话是不需要file.close()。
然后继续跟着项目用了with as来执行ThreadPoolExecutor开线程来执行任务,但是没有深入了解为什么。
原.png
根据上图81行我原本是执行了shutdown(),但后面经网友指点了下with as的话是需不需要pool.shutdown()的,因为上下文管理器会自动帮你执行。
我就想上下文管理器是个什么? 但是感觉和之前写入文件时不需要file.close()有异曲同工之妙。

- 阅读剩余部分 -