存储(一):阿里云对象存储OSS2,python_SDK

有多种开发语言SDK,先上SDK连接:
https://help.aliyun.com/document_detail/52834.html?spm=a2c4g.11186623.4.4.1efe585eCLlXR5

前提:
已开通OSS服务,已创建Accesskey。

其他的就不多说了,连接文档里面的介绍和使用比我说的肯定要好太多了,我就分享一下我使用过程中遇到的一些坑和思想吧。

首先说下安装问题,OSS Python SDK适用于Python 2.6、2.7、3.3、3.4、3.5、3.6版本,但是我服务器上面使用的是python3.9的也没啥问题。反倒是我自己的电脑上python3.6版本有问题,验证crcmod的C扩展模式安装失败,SDK安装成功,但是上传、下载等操作的效率非常低下,根据文档提示稍微处理一下没有效果,但是我自己是不在自己电脑上操作的所有就没有去管了,后续有时间自己去处理一下这个问题吧。
linux服务器:
CentOS系统安装依赖库:yum install python-devel
安装SDK:pip3.9 install oss2

然后说一下存储空间,这个模块其实开发者不需要去二次实现了,因为服务器拥有者可以在阿里云的平台可视化操作了,感觉再实现就有点浪费时间了,而且没有意义。我觉得只要把上传文件,下载文件,遍历文件,删除文件的接口看一下应该就OK了,如果要再深入一点就数据加密也看一看就OK了。

最后说下我实现存储过程遇到的问题:
1、之前从某网站上面爬取到的信息中大概有10亿张图片,是一个非常大的数据量,因为爬虫把这样的数据保存到本地或者我手上现有的服务器里面根本放不下,只能暂时保图片链接存到数据库后期再做处理
2、保存在OSS服务器上面是根据阿里云定义域名请求规则进行请求的,然后数据量如此庞大而域名后面要跟上存储文件路径和文件名称,这个命名当时有点头疼,后来我利用了数据库主键ID的唯一性和时间戳完美解决了。
3、前两者都解决了,接下来就是这么庞的数据量我要怎么快速获取保存到OSS上面,以我目前的认知和能力决定采用多进程来实现,因为python的GIT锁的历史因素多进程不是真正意义上的多任务,加上要获取图片内容,保存到OSS上,减少的这些阻塞时间还是很鸡肋的。虽然多进程可能多占点资源但是相比线程的弊端还是多进程合适,程序的模式采用了生产者和消费者模式,初步计算应该要花好几天时间。

附上源代码连接:
https://github.com/A-dying-ape/demo/tree/master/OSS2%E5%AD%98%E5%82%A8_1.0

如果有什么好的解决方案欢迎留言。

你可能感兴趣的:(python,mysql,oss存储,python,爬虫,云存储)