說明
最近在使用阿里雲oss,需要在前端編譯完成後,將編譯好的某些靜態資源文件上傳到oss(如js,圖片等),主要是爲了結合阿里雲CDN做緩存,增加頁面訪問速度。
這時需要在編譯完成後增加上傳oss的動作,ossutil是個不錯的工具(基於go語言的一個工具)。
補充:
一個更好用的OSS工具 ossfs,點擊連接步移。
下載安裝
- 我是基於Linux 64位的,也有windows版本,詳見阿里雲官網
#可以下載到指定目錄,比如 /home/deploy/ossutil
cd /home/deploy/ossutil
#下載,目前最新版本爲1.6.3
wget http://gosspublic.alicdn.com/ossutil/1.6.3/ossutil64
#修改權限,變爲可執行文件
chmod 755 ossutil64
- 配置
通過交互式命令生成配置文件:
./ossutil64 config
請輸入配置文件路徑: # 直接回車跳過,使用默認配置文件即可:/home/deploy/.ossutilconfig (deploy是我當前的登錄用戶),如果你設置爲其它路徑,在使用命令時需使用--config-file參數指定路徑
#下述配置,回車將跳過相關配置項的設置,配置項的具體含義,請使用"help config"命令查看。
請輸入endpoint:http://oss-cn-shenzhen.aliyuncs.com
請輸入accessKeyID:yourAccessKeyID
請輸入accessKeySecret:yourAccessKeySecret
請輸入stsToken: # 非必要參數,可以直接回車跳過
如果上述過程配置有誤,可以修改.ossutilconfig
文件
vi /home/deploy/.ossutilconfig
使用方式
參數說明:
./ossutil64 cp <目標文件(文件夾)> <oss路徑> [-u|-r|....等可選參數]
cp
: 貝命令,將本地文件拷貝到oss
-u
: cp的可選參數,表示對於相同文件名的文件,如果oss上的modifyTime早於本地的modifyTime則執行覆蓋操作
-r
: cp的可選參數,表示可以上傳文件夾(包含文件夾中的所有文件以及子文件夾遍歷上傳)
--exclude
: 過了掉某些文件,支持通配符
<oss路徑>組成: oss://<bucket名稱>/[你在bucket中建立的目錄]
目錄可以沒有,沒有的話直接拷貝到bucket根目錄
參考阿里雲官方文檔:
https://help.aliyun.com/document_detail/50452.html
只要再編譯腳本中添加如下命令就達到了我的目的:
./ossutil64 cp /home/resource-files/ oss://your-bucket-name/your-dir --exclude "*.html" --exclude "*.htm" -ur