對象存儲(Cloud Object Storage,COS)是一種存儲海量文件的分布式存儲服務,具有高擴展性、低成本、可靠安全等優點。
對象存儲有什么用呢?對于站長而言,比如Python實用寶典網站的服務器位于騰訊云香港,大陸訪問速度會比較慢,這時候我可以將圖片等靜態資源轉移到對象存儲上,以提高用戶的訪問速度。
實際上,這兩天我就對Python實用寶典做了這樣的調整,搭配上懶加載,效果極佳,用戶訪問并渲染圖片的過程所耗費的時間大大減少,大家可以訪問Python實用寶典網體驗一下:
https://pythondict.com
那么對于非站長的普通用戶有什么用?相比于其他什么百度網盤之類的產品,COS最重要的優勢是:
- 上傳下載不限速,數據中心多地任選
- 能實現文件分享功能,同樣不限速
- 能自動創建文件歷史備份,方便回溯辦公文件
- 支持各平臺用客戶端管理文件,電腦端甚至還可直接將網盤掛載為一個虛擬磁盤
- 價格按用量計費(存儲量、下行流量),免費額度用完后,你可能一個月大約也才需要花費 6 元
像騰訊云這樣的大云服務商,每個月都給用戶提供了50G的免費容量:

非常好,下面大家可以跟著我一起嘗試使用一下,或許你會愛上這個產品。
0.創建存儲桶
進入騰訊云的對象存儲頁面:
https://console.cloud.tencent.com/cos5/bucket#

選擇創建存儲桶,可以隨意命名你的數據桶,地域可以選擇離你最近的。注意訪問權限這一項,如果你希望你的朋友也能下載數據桶內的文件,一定要選擇公有讀私有寫。
1.安裝
接下來說說怎么用Python將靜態資源轉移到騰訊云COS上。
Coscmd是騰訊云官方基于Python推出的上傳工具,使用起來非常方便。
使用 pip 安裝 coscmd:
如果直接安裝失敗了,可以嘗試源碼安裝:
git clone https://github.com/tencentyun/coscmd.git
cd coscmd
python setup.py install
可以使用 coscmd -v
查看版本號
# coscmd -v
coscmd 1.8.6.16
2.配置
安裝完成之后我們還需要一些參數配置,配置密鑰、存儲桶地域等。我們遷移數據時僅僅只需要配置一些簡單的參數即可:
coscmd config -a SecretID -s SecretKey -b BucketName-APPID -r region
BucketName-APPID 是存儲桶名稱,region 為存儲桶所在地域,SecretID 和 SecretKey 可以在控制臺獲取,如果沒有的話直接創建一個:
https://console.cloud.tencent.com/cam/capi

創建后如上圖下方列表所示,有APPID、SecretID 和 SecretKey,那么命令就如:
coscmd config -a AChT4ThiXAbpBDEFGhT4ThiXAbp**** -s WE54wreefvds3462refgwewe**** -b examplebucket-1250000000 -r ap-beijing
3. 遷移
下面以遷移本地附件到 COS 為例,演示一下 COSCMD 的使用
COSCMD 可以上傳文件也可以直接上傳文件夾,命令為:
#上傳文件
coscmd upload
#上傳文件夾
coscmd upload -r
這樣我們就可以使用如下命令將媒體庫的文件上傳到 COS 中:
# home/ 指將媒體庫里的文件存放到COS的home文件夾中
coscmd upload -r 你的媒體庫文件夾地址 存放到COS的具體位置如home/
#同步上傳,跳過 md5 相同的文件
coscmd upload -rs 你的媒體庫文件夾地址 home/
#忽略 .mp3 和 .gif 的后綴文件
coscmd upload -rs 你的媒體庫文件夾地址 home/ --ignore *.mp3,*.gif
我們需要將媒體庫的圖片上傳到 COS 中,存放的路徑則因使用而異。
如果是網站的話,比如WordPress 的媒體庫存儲路徑建議使用 wp-content/uploads/
,如果你是為了個人使用,可以上傳到任意位置,建議使用:home/.

上傳完成后如上圖所示,你可以在文件列表中找到你剛上傳的這些媒體文件。
當然,COS也支持手動上傳文件:

如果你按照我的步驟創建了一個公有讀私有寫的數據桶,那么上傳的這些資源也支持分享文件下載地址給別人:

上圖中顯示的對象地址,就可以拿來分享給你任何朋友下載,不限速!不限速!不限速!怎么樣,是不是超香?
到此這篇關于Python 轉移文件至云對象存儲的文章就介紹到這了,更多相關Python 云對象存儲內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python統計可散列的對象之容器Counter詳解
- python面向對象基礎之常用魔術方法
- Python面向對象封裝繼承和多態示例講解
- Python實現學生管理系統的完整代碼(面向對象)
- python學習之可迭代對象、迭代器、生成器
- Python中的類對象示例詳解
- Python中對象的比較操作==和is區別詳析
- Python數據模型與Python對象模型的相關總結
- python 對象真假值的實例(哪些視為False)
- Python reversed反轉序列并生成可迭代對象
- Python如何使用vars返回對象的屬性列表
- Python通過getattr函數獲取對象的屬性值
- python源碼剖析之PyObject詳解