OSS Python SDK
淺談
很多 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 載入的環境變數路徑確認一下。
- 參考一些網上的處理方法,這是個開源的報錯 ofollow,noindex" target="_blank">參考
使用遇到問題排查
問:同臺機器 ossutil 很快,python SDK 很慢
- ossutil 原始碼是 go ,併發上傳的效能確實很好,但是 python SDK 也至於慢很多,一般這種情況基本都是預設開啟了 crc64 。
-
如果對效能有要求的話,建議把 crc64 關掉,通過在 header 頭中增加 Content-md5 頭的方式替代 crc64 更好。
- = oss2.Auth('AK', 'SK')
-
= oss2.Bucket(auth, 'endpoint', 'bucket',enable_crc=False)