天天看點

python 上傳下載下傳 OSS 檔案說明OSS的使用功能描述用法描述腳本下載下傳連結Reference

說明

最近放寒假回家了,準備租用阿裡雲的 GPU 雲伺服器 按量收費,訓練時臨時購買,訓練完了就釋放。但這樣的話,每次要上傳訓練資料,需要耗費很多時間。這時我想到了阿裡雲的 OSS對象存儲服務。

阿裡雲的 OSS服務相當于一個雲盤,按存儲量、通路次數、下載下傳流量 三項計費,而且外網下載下傳收費,内網之間通路不收錢。如此一來,我便可以隻花少量的存儲費用便可以把我的資料集托管在阿裡雲上。

使用體驗,阿裡雲的内網傳輸速度确實極快,經過我用多次傳輸 1G大小的檔案的體驗,内網速度在50M以上,如果你選擇的是SSD雲盤,估計速度會更快吧。

Notes

因為阿裡雲的 OSS 也按通路量收費,是以你就不要上傳太多的碎檔案了,最好打包成一個壓縮包,下載下傳到伺服器後再解壓。碎檔案不僅上傳速度慢,還需要多收費,得不償失呀!

OSS的使用

OSS使用起來還算友善,有提供 OSS-browser 這樣的用戶端軟體,這個軟體有界面,很友善操作使用。但問題就在于它有界面……

是以在 linux 雲伺服器上使用起來并不是很友善,是以,我打算結合阿裡雲OSS-SDKpython 來寫一個簡單的腳本來實作上傳、下載下傳、檢視 OSS 檔案的功能。

功能描述

總共實作了三個功能: 下載下傳、上傳、檢視檔案。

實作的功能很簡單,先設定好阿裡雲的 AccessKeyId 和 AccessKeySecret ,然後設定你所通路的 bucket 所在的區的連結和你所需要通路的 bucket 的名稱。之後就可以在 linux 終端上通路。

python 上傳下載下傳 OSS 檔案說明OSS的使用功能描述用法描述腳本下載下傳連結Reference

用法描述

下載下傳

python download_from_oss.py -f file1 -f file2 -o ./dest/
# -f , --files 你需要下載下傳的OSS上的檔案名稱,一個 -f 後面隻跟一個檔案
# -o, --outputPath 你需要統一放置在哪個本地路徑下,路徑不存在會自動建立
# -i, --internal 是否是阿裡雲内網, 不是内網的話,不用填寫
           

檢視檔案清單

python download_from_oss.py -l
# -l, --listfiles 檢視檔案
# -i, --internal 是否是阿裡雲内網, 不是内網的話,不用填寫
           

上傳檔案

python download_from_oss.py -f ./file1 -f ./file2 -p log/test1 --upload
# -f , --files 你需要上傳的本地檔案,一個 -f 後面隻跟一個檔案
# -p, --prefix 給你在 oss 上統一添加字首,可以模仿把檔案全部上傳到某個檔案夾中的操作
# -i, --internal 是否是阿裡雲内網, 不是内網的話,不用填寫
           

腳本下載下傳連結

我的腳本原本使用 git 作為版本控制,但目前該深度學習工程還沒有完全完成,是以暫時不開源。待到6月後驗收完成後,我就會放到 github 上開源。到時補上一個 github 項目連結。

Reference

  1. 阿裡雲GPU雲伺服器
  2. 阿裡雲OSS對象存儲服務
  3. 阿裡雲OSS-SDKpython

繼續閱讀