前言

之前使用华为云数据库其实主要是为了存储自己的图片,但后面发现如果用数据库存储图片的话将面临主要两个问题。
      第一,数据库数据类型有限制,不方便我们操作,不够灵活,当我们想要再存储其它东西的时候还需要修改数据库列的类型。
      第二,因为我主要是为了存储图片,如果想要通过python存储图片到数据库的话,中间有一个数据类型转化的过程,每次都需要转码以及解码,这个过程浪费了很多时间以及资源。(还有很多脑细胞)
      因此,我选择了数据库+云存储的方式来实现图片的存储以及管理(很多人应该都是这么做的吧)
      本文呢就是主要介绍一下怎么通过python来创建以及使用华为云的云数据存储服务OBS。(最基础的,自己使用的经验,没用到的也没去接触)
      刚开始我有点担心速度的问题,后面发现我想多了,图片大小1.17MB,上传速度实测0.5s左右,下载速度实测也在0.5s左右。
      如果发现文章哪里有问题,欢迎指正。

创建桶

首先呢,我们在华为云的服务列表里的存储类里面找到对象存储服务OBS。进入之后我们点击右上角的创建桶。
      具体怎么配置的话还是看你的使用情况,我的因为是经常性的使用且都是小文件,所以是这么配置的。
      配置完成后点立即创建就完成了。官方介绍的使用流程是分成五步的,但是我因为没有特殊需求就没有进行配置,感兴趣的话可以自己了解下。我们刚刚完成了第一步的创建,第二第三步我直接跳过了,第四项的话它默认是帮你监控的,如果你需要监控其它什么数据的话看可以自己设置下,最后的第五步就是需要你花钱了(创建桶是免费的)
      我们点击购买资源包。下面的这个是我买的配置,主要是单az和多az那里别选错了,其它的根据自己的需求来就行了。同样价格还是很便宜的。
      购买之后我们基本就配置的差不多了。下面一步,我们需要找到个人凭证。
      在我的凭证里面有个访问密钥,我们新增一个密钥。新增完成后网页会自动下载一个csv文件。别误删了,每个密钥好像都是只能下载这一次。当然,不嫌麻烦可以再新增。。。csv文件里面总共有三项。第一项是你华为云账号的名称,后面的Access Key Id和Secret Access Key就是你的id和密码了。此外,我们还需要一个信息,就是我们创建桶的访问地址,我们点击我们的桶,在基本信息里面可以看到个访问域名,我们将这个信息记下来。下面我们就可以开始python端的实现了。

python端实现

同样我这里就是使用的官方的SDK,具体的大家可以在官方SDK文档里面找,我这里给大家演示的就是文件的上传和下载了。
      首先我们要安装官方的SDK,就直接跟安装其它第三方库一样pip install esdk-obs-python就可以了。

文件上传

from obs import ObsClient
from datetime import datetimestart = datetime.now()#用来计时
# 创建ObsClient实例
obsClient = ObsClient(access_key_id='Access Key Id',#刚刚下载csv文件里面的Access Key Idsecret_access_key='Secret Access Key',#刚刚下载csv文件里面的Secret Access Keyserver='https://访问域名'#这里的访问域名就是我们在桶的基本信息那里记下的东西
)
# 使用访问OBS
# 调用putFile接口上传对象到桶内
resp = obsClient.putFile('桶的名称', '文件存储在桶内的名称', file_path='要上传的那个文件的本地路径')
if resp.status < 300:# 输出请求Idprint('requestId:', resp.requestId)
else:# 输出错误码print('errorCode:', resp.errorCode)# 输出错误信息print('errorMessage:', resp.errorMessage)
# 关闭obsClient
obsClient.close()
end = datetime.now()
print(end-start)#打印出使用的总时间

文件下载

from obs import ObsClient
from datetime import datetimestart = datetime.now()#用来计时
# 创建ObsClient实例
obsClient = ObsClient(access_key_id='Access Key Id',#刚刚下载csv文件里面的Access Key Idsecret_access_key='Secret Access Key',#刚刚下载csv文件里面的Secret Access Keyserver='https://访问域名'#这里的访问域名就是我们在桶的基本信息那里记下的东西
)
# 调用getObject接口下载桶内对象
# 本地路径记得加上文件名和后缀  比如F:/test_picture/1.jpg
resp = obsClient.getObject('桶的名称', '文件存储在桶内的名称', downloadPath='下载到的本地路径')
if resp.status < 300:print('requestId:', resp.requestId)print('url:', resp.body.url)
else:print('errorCode:', resp.errorCode)print('errorMessage:', resp.errorMessage)# 关闭obsClient
obsClient.close()
end = datetime.now()
print(end-start)#打印出使用的总时间

记录——python与华为云对象存储服务OBS相关推荐

  1. 华为云对象存储服务OBS教你一招轻松解决存储难题

    身处于信息爆炸的时代,各种各样的数据琳琅满目,需要记录存储的资料和信息数不胜数,有时候个人都会感觉到存储空间不足,更何况是一些正处于发展阶段中小型企业?那对于存储的需求就更迫切了. 遇见这种问题,很多 ...

  2. 华为云对象存储服务OBS,海量存储安全可靠,让云存储更加简单

    随着产业数字化转型大潮的到来,企业生产经营过程中产生的数据也越来越多,不管是大型企业还是小微企业对数据存储备份的要求也越来越高,有的企业选择自购硬件设备进行存储,一方面需要付出高昂的成本,另一方面如果 ...

  3. 海量、安全、高可靠的华为云对象存储服务OBS,助力企业数据存储降本提效

    在信息化.数字化时代,企业的数据量日渐增长,对存储的需求也在不断变化,企业自建存储服务器受限于搭建存储服务器时使用的硬件设备,如果存储量不够,需重新购买存储硬盘,进行人工扩容,而且人力物力成本较高,为 ...

  4. 数据存储服务的百宝箱——华为云对象存储服务OBS

    在互联网的大时代中,企业的数据管理存储一直是头等大事,但是企业的发展和业务量的增加,导致企业对数据存储空间的要求也随着数据的累加和复杂而变得越来越高,于是企业数据云上存储服务也随之崛起.云上存储服务在 ...

  5. 华为云 对象存储服务 OBS 上传文件 上传图片 PHP Laravel

    语言:php 框架:laravel 简介:将项目上所有的 图片.pdf文件.视频等上传到华为云 并获取到华为云的文件地址进行访问 准备工作 composer准备 1.composer.json里添加需 ...

  6. 华为云对象存储连接测试

    华为云 对象存储服务 OBS //<!-- 华为云--> //<dependency> //<groupId>com.huaweicloud</groupId ...

  7. 华为云对象存储浏览器直接打开,而不是下载

    基于安全合规要求,华为云对象存储服务OBS禁止通过OBS的默认域名(桶访问域名或静态网站访问域名)在线预览桶内对象,即使用上述域名从浏览器访问桶内对象(如视频.图片.网页等)时,不会显示对象内容,而是 ...

  8. 华为云对象存储OBS,助力企业降本增效

    信息化时代,互联网信息技术在企业发展中扮演着越来越重要的角色,对于网络信息数据的依赖程度也在不断提高.企业可以通过使用计算机进行信息管理,将各种资源有效利用起来.但是每天产生的大量数据信息,需要花费很 ...

  9. 华为云对象存储OBS,为不同企业提供云存储方案,助力企业更好经营

    我们正处于一个信息爆炸的时代,不管是日常通讯还是看视频玩游戏,只要是和网络相关的服务,就离不开数据的存储和读取,对于企业来说也是如此.企业的生产经营需要大量的数据支持,因此企业对于数据存储的要求也很高 ...

最新文章

  1. 无需训练RNN或生成模型,我写了一个AI来讲故事
  2. 多线程批量拆分List导入数据库
  3. tp5某个字段相同的数据只取一次_多维分析数据仓库建设建议-面向主题的建模...
  4. GDB and core
  5. 宝塔面板怎么下载php,宝塔面板下怎么安装Mosquitto-php扩展
  6. python设置本机IP地址、子网掩码、DNS,获取本机IP地址、子网掩码、DNS、MAC
  7. laravel 向模板中添加公共变量
  8. 邵阳市工业学校计算机29班,邵阳市南门口大祥区沙子坡文明路11号计算机学校...
  9. Google 究竟是不是要用 Fuchsia OS 取代 Android?
  10. oracle日志不应用,dg报ORA-600日志不能应用
  11. JAVA受检异常和非受检异常举例
  12. 这款 Android 图片选择库美哭了
  13. JavaSE学习笔记--Item1 注解Annotation
  14. java基于springboot+vue的网上购物商城系统
  15. 谷歌搜索组建discuz!_Google的热门搜索结果? 惊喜! 是谷歌
  16. 产品经理认证(NPDP)知识体系指南.2017
  17. CoreDNS篇7-性能压测
  18. 大点符号pt 1初学者指南
  19. Jaca程序基础学习笔记
  20. JWT signature does not match locally computed signature. JWT validity cannot be asserted and should

热门文章

  1. 超详细的gnuplot使用教程【2】
  2. netstat –ano|findstr “port”命令
  3. 我的面试经历(2013.5)
  4. 名帖80 苏轼 楷书《南轩梦语》
  5. Echarts 贵州地图(增加贵安新区)
  6. 网页版2048html制作,基于HTML+CSS+JS的网页版2048的实现
  7. 红帽6.4版本安装详细步骤
  8. 如何提升测试人员在公司的地位
  9. 什么是 Linux ?什么是操作系统
  10. 用四阶龙格库塔法(RK4)求解二阶微分方程