阿里云服务 关注
手机版

OSS Python SDK

  1. 云栖社区>
  2. 阿里云服务>
  3. 博客>
  4. 正文

OSS Python SDK

张医博 2018-11-11 09:37:34 浏览589 评论1

摘要: 浅谈 很多 oss 使用者在使用 Python SDK 时出现很多问题,不确定是否影响使用,有的安装失败环境有问题,今天说下遇到的几个案例 官方安装 pip install oss2 版本最好是 2.7.5 或以上 oss2 依赖 如果要开启 crc64 循环冗余校验,需要先将 crcmod 安装好。

浅谈

很多 oss 使用者在使用 Python SDK 时出现很多问题,不确定是否影响使用,有的安装失败环境有问题,今天说下遇到的几个案例

官方安装

  • pip install oss2
  • 版本最好是 2.7.5 或以上

oss2 依赖

  • 如果要开启 crc64 循环冗余校验,需要先将 crcmod 安装好。
  • 安装 python-devel 执行 yum install python-devel。
  • 需要循环冗余校验,安装 crcmod 执行 pip install crcmod。

安装遇到的问题

验证 oss2

先判断是 oss2 是否安装成功,在命令行输入python并回车,进入Python环境,执行以下命令检查SDK版本:

>>> import oss2
>>> oss2.__version__
'2.x.x'

导入 crcmod 失败

>>> import crcmod._crcfunext
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named _crcfunext
  • 没有安装 python-devel 或者 crcmod ,如果已经安装 crcmod ,请 uninstall 后,重新安装 python-devel 然后再安装 crcmod。
  • crcmod 安装的环境 path 和你本机的 python 环境不一致,可以用 sys path 查看你 python 加载的环境变量路径确认一下。
  • 参考一些网上的处理方法,这是个开源的报错 参考

使用遇到问题排查

问:同台机器 ossutil 很快,python SDK 很慢

  • ossutil 源码是 go ,并发上传的性能确实很好,但是 python SDK 也至于慢很多,一般这种情况基本都是默认开启了 crc64 。
  • 如果对性能有要求的话,建议把 crc64 关掉,通过在 header 头中增加 Content-md5 头的方式替代 crc64 更好。

  1. = oss2.Auth('AK', 'SK')
  2. = oss2.Bucket(auth, 'endpoint', 'bucket',enable_crc=False)

5

问:安装 oss2 导入出现 urllib3 不存在提示

5

答:

  • 和之前说过的一样,这种错误都是 python 自身的问题,看哪个依赖的模块没有,安装即可, oss2 的 http 请求处理依赖 urllib3 。
  • 确认下 pip install 安装的环境和本地 python 环境是否一致。

问:OSS python SDK 分片上传失败

1

用户通过 python SDK 的分片上传函数上传到 OSS 失败,碎片管理中出现很对碎片。

  • 先确认是直接传到 OSS,还是通过其他 proxy 传输到 OSS (类似 CDN),如果经过 CDN 再上传到 OSS 需要在 OSS 上配置跨域的头,Access-Control-Allow-Origin 、Access-Control-Allow-Mehtod 、Access-Control-Allow-header,并且将 Etag 暴露出去。
  • 客户端上传失败是因为网络超时,还是捕获到异常上传失败,需要详细看下捕获到的 SDK 异常信息分析,如果是网络超时导致上传失败,建议使用断点续传来替代普通上传。断点续传支持分片,并发,已经弱网的兼容。
  • 清理掉上传失败的碎片文件重新上传。
  • 当以上操作都解决不了你的问题时,需要提供以下信息升级阿里云便于快速定位:

    • 提供 SDK 异常时返回的 requestID,这个属性是 response header 中携带的记录了完整的 OSS 请求过程。
    • 客户端部署 tcpdump ,然后重新运行代码上传,保存抓包。
      tcpdump -i <网卡出口名称> -s0 host <访问oss的域名> -w faild.pcap
【云栖快讯】阿里云栖开发者沙龙(Java技术专场)火热来袭!快来报名参与吧!  详情请点击

网友评论

1F
初心丽星

没网络了!还是跑了我不知

(来自社区APP)
张医博
文章55篇 | 关注33
关注
提供海量、安全和高可靠的云存储服务。RESTful API的平台无关性,容量和处理能力的弹性... 查看详情
提供一种性能卓越、稳定、安全、便捷的计算服务,帮助您快速构建处理能力出色的应用,解放计算给服... 查看详情
Node.js 性能平台(Node.js Performance Platform)是面向中... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
双12

双12