Mac 好用的圖床工具 FCM

村裡的河水原本有魚的發表於2020-05-18

暫時沒想好取什麼名字,姑且這麼叫吧 :smirk:

簡介

這是一個用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

    image-20200506210347096

  • 刪除檔案

./fcm -del /path/to/file

下載

根據對應系統下載對應的版本 releases

TODO

  1. 繼續修bug,完善專案。

  2. 支援資料庫與雲空間繫結,刪除資料庫某條資料時,從雲空間也刪除。

  3. 支援更多的資料庫操作。

支援

直接提交 issues

到我的部落格留言

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章