暫時沒想好取什麼名字,姑且這麼叫吧
簡介
這是一個用golang
編寫的多雲上傳工具,靈感來自於 PicUploader
, 感謝@xiebruce
。
目前的樣子是一個命令列的工具,以後“可能”(挖坑)會有介面吧。同時也是作為自己學習過程的一個見證。目前支援的服務商(物件儲存或者圖床服務商)如下:
服務商 | 檔案型別 |
---|---|
阿里雲 | 任意 |
騰訊雲 | 任意 |
百度雲 | 任意 |
京東雲 | 任意 |
ucloud | 任意 |
七牛 | 任意 |
又拍雲 | 任意 |
sm.ms | 圖片 |
碼雲(gitee) | 圖片 |
特點
- 資料庫去重複支援,上傳的時候如果資料庫已存在記錄,會自動跳過上傳,病返回資料庫中存在的連結。
- 高併發上傳大檔案支援,大於
128M
的檔案都使用分片上傳,充分利用你的寬頻。 - 跨平臺支援,除了配置檔案,無需額外環境設定。
- 輕量化,不駐後臺。
- 支援刪除檔案同步到雲端(僅指資料庫記錄與雲端,本地檔案不作處理)
使用說明
./fcm <option> [args]
指令 | 引數 | 說明 |
---|---|---|
-i –init | config | 初始化配置檔案,不出意外會自動開啟配置檔案 |
All | 初始化所有,包括目錄,會在使用者主目錄下建立FCM 資料夾 |
|
-u –use | console | 使用終端模式上傳檔案,這個模式在上傳完成後列印出所有的檔案連結。例如:-u console ./test.txt |
system | 以系統呼叫方式上傳檔案,主要用來支援右鍵上傳,上傳完成連結後會自動寫入剪下板,如果上傳多個雲空間,只會返回每個檔案的第一條連結 | |
typora | 作為typora的自定義上傳外掛 | |
-d –db | Dump | 從資料庫中匯出所有的檔案連結,檔案儲存在FCM 資料夾的save 資料夾下 |
query | 查詢單個檔案的記錄 | |
-del | 刪除某個檔案記錄,同步刪除雲端的檔案。直接接檔案路徑 -del /path/to/file |
第一次使用時,執行 ./fcm -i all
初始化,然後填寫配置檔案,如果系統沒有自動開啟檔案,請在當前使用者主目錄下的/FCM/config/config.json
開啟手動編輯。
配置檔案大致結構如下:
{
"name": "FCM 配置檔案",
"storage_types": {
"aliyun": {
"name": "Aliyun oss SDK", //無關緊要的引數
"access_key_id": "LT****************KS", //雲平臺獲取的key
"access_key_secret": "Tu*****************e0", // 雲平臺獲取的secret
"bucket_name": "bucket", // 物件儲存名稱
"endpoint": "oss-cn-shenzhen.aliyuncs.com", //地域
"custom_domain": "" //自定義返回連結,不填預設使用 bucket_name.enpoint 拼接
},
... // 省略大致相同的結構體
"smms": {
"name": "smms",
"access_token": "EVYkI2DGsBGcWnt8LK4AtGoGag3qcyQY", //smms的token
"proxy": ""
},
"gitee": {
"name": "gitee",
"owner": "sevth", // 所有者,就是連結地址的那個名字
"repo": "image", // 倉庫名字
"access_token": "0*************2" //token
}
},
"dir說明": "存放的檔案目錄 {R} 根據檔案字尾判斷檔案型別,使用對應的路徑,時間格式 {Y} 2020 {y} 20 {M} Apr {m} 04 {d} 01",
"directory": "test/{Y}",// 類似的 {R}/{Y}/{m}/{d} 會自動替換成類似 image/2020/5/1 的形式,{R}是根據檔案型別判斷的。
"primary_domain": "", // 主域名,除非你用反代,具體看 picUpload 的說明
"uses": [ //上傳到哪些(或者一個)服務商
"gitee",
"aliyun"
],
"dsn": { // 資料庫配置,一般除非必要,儲存預設就好。
"uses": "sqlite3", // 還支援 mysql,mssql,postgres
"protocol": "", //類似於 127.0.0.1:3306 / localhost
"username": "", //資料庫使用者名稱
"password": "", //密碼
"dbname": "", //使用的資料庫
"dsn_link": "", //dsn 連結 權重高,填寫即使用dsn連結連線資料庫
"debug": false
}
}
直接使用
在終端中輸入
./fcm -u console /path/to/you/file1 /path/to/you/file2
在系統中使用
設定右鍵方式參考picUpload ,指令換成類似如下
/YouHomeDir/FCM/fcm -u system "$@" | pbcopy
在typora中使用
開啟
typora
設定,在影像選項卡,上傳服務設定選擇Custom Command
自定義命令如下:/YouHomeDir/FCM/fcm -u typora
刪除檔案
./fcm -del /path/to/file
下載
根據對應系統下載對應的版本 releases
TODO
繼續修bug,完善專案。
支援資料庫與雲空間繫結,刪除資料庫某條資料時,從雲空間也刪除。
支援更多的資料庫操作。
支援
直接提交 issues
到我的部落格留言
本作品採用《CC 協議》,轉載必須註明作者和本文連結