利用七牛自動同步文件

咱們在寫博客的時候,尤爲用markdown語法是沒法直接插入圖片的,這時就須要關聯圖片,而對於Markdown來講,又沒有辦法直接貼圖片,須要將圖片上傳到一個網站上,以後再取圖片的連接,利用[!image]來關聯圖片,感受仍是挺麻煩的,後面作項目時,同事有用七牛服務器作存儲,發現是個好東西,不只可以方便上傳圖片,並且容易提供外鏈,很是方面,體驗用戶有1G空間,能夠上傳身份信息驗證成爲標準用戶,這樣就有10G的空間了,小猿我已申請,哈哈!!!下面我來講說如何實現自動同步.html

簡介

qrsync 是一個根據七牛雲存儲API實現的簡易命令行輔助上傳同步工具,支持斷點續上傳,增量同步,它可將用戶本地的某目錄的文件同步到七牛雲存儲中,同步或上傳幾百GB甚至上TB的文件毫無鴨梨。linux

  • 注意:被同步的文件名和路徑必須是utf8編碼,非utf8的文件名和路徑將會同步失敗。shell

下載

qrsync 命令行輔助同步工具下載地址:json

這裏咱們選擇Mac OS下載,解壓後會有以下幾個文件:
<pre>
-rwxr-xr-x 1 starnet staff 9607820 Jun 30 2014 qboxrsctl
-rwxr-xr-x 1 starnet staff 2543904 Jun 30 2014 qetag
-rwxr-xr-x 1 starnet staff 8394344 Jun 30 2014 qrsboxcli
-rwxr-xr-x 1 starnet staff 12006444 Jun 30 2014 qrsync
</pre>
將這些文件拷貝到/usr/bin中
<pre>
sudo cp qrs* /usr/bin/
</pre>

使用方法

先創建一個配置文件(JSON格式),好比叫conf.json,內容以下:

{
    "src":          "/home/your/sync_dir",
    "dest":         "qiniu:access_key=<AccessKey>&secret_key=<SecretKey>&bucket=<Bucket>&key_prefix=<KeyPrefix>&threshold=<Threshold>",
    "debug_level":  1
}
  • 替換時<>一併替換,後兩項能夠不設置,直接刪除便可.

其中,AccessKeySecretKey 須要在七牛雲存儲平臺上申請。申請步驟步驟以下:

參數名稱 必填 說明
src ● 本地源目錄路徑
是本地須要同步上傳目錄的完整的絕對路徑。這個目錄中的全部內容會被同步到指定的 bucket 中。
注意:Windows 平臺上路徑的表示格式爲:盤符:/目錄,好比 E 盤下的目錄 data 表示爲:e:/data
bucket ● 目標空間
是你在七牛雲存儲上但願保存數據
Bucket名稱,選擇一個合適的名字便可,要求是隻能由字母、數字、下劃線等組成。
能夠先在七牛管理控制檯上建立。
key_prefix ● 文件上傳到七牛雲存儲後的給key添加的前綴。
例如,若是將 key_prefix 設爲 abc/,在 src 中存在一個文件 a.txt, 則上傳到七牛雲存儲後,此資源的key爲 abc/a.txt
threshold ● 進行分片上傳的閾值。
單位爲Byte, 默認值爲1MB,當文件大小小於1MB時直傳整個文件,當文件大於1MB時進行分片上傳該文件。
你能夠根據你的網絡情況來決定該值的大小。
debug_level ● 日誌輸出等級
一般設置1,只輸出必要的日誌。
當上傳過程發生問題時,設置爲0能夠獲得詳細日誌。
  • 注意:切勿將配置文件保存在被同步的目錄中,不然會帶來泄露SecretKey的風險。

能夠在 七牛雲存儲開發者網站後臺 進行相應的域名綁定操做,域名綁定成功後,若您將 bucket 設爲公用(public)屬性,則能夠用以下方式對上傳的文件進行訪問:

<pre>
http://&lt;綁定域名>/<key>
</pre>

key 便是 src 裏邊文件名或文件的相對路徑,key 能夠包含斜槓但不能以斜槓開頭。好比 src 存在文件 a.txta/b/c.txt,且綁定的域名爲 foo.qiniudn.com,那麼便可用以下路徑訪問:

<pre>
http://foo.qiniudn.com/a.txt
http://foo.qiniudn.com/a/b/c.txt
</pre>

在創建完 conf.json 配置文件後,就能夠運行 qrsync 程序進行同步。

Unix/Linux/MacOS 系統能夠用以下命令行:

<pre>
$ qrsync /path/to/your-conf.json
</pre>

Windows 系統用戶在 [開始] 菜單欄選擇 [運行] 輸入 cmd 回車便可打開 DOS 命令行窗口,而後切換到 qrsync.exe 的所在磁盤路徑。假設你的 qrsync.exe 存放在 d:/tools/qrsync.exe,那麼以下幾行命令能夠切換到 qrsync.exe 存放的目錄:

<pre>

d:
cd tools

</pre>

進入到 qrsync.exe 所在目錄後運行以下命令便可:

<pre>

qrsync.exe /path/to/your-conf.json

</pre>

須要注意的是,qrsync 是增量同步的,若是你上一次同步成功後修改了部分文件,那麼再次運行 qrsync 時只同步新增的和被修改的文件。固然,若是上一次同步過程出錯了,也能夠從新運行 qrsync 程序繼續同步。

默認的七牛共享域名是7ximmr.com1.z0.glb.clouddn.com,以下是你同步的文件對應的外鏈地址
<pre>
http://7ximmr.com1.z0.glb.clouddn.com/文件名
</pre>

常見故障排查

配置文件<src>設置錯誤:

錯誤信息

# Windows下
[WARN][qbox.us/shell/qrsync] qrsync.go:70: qrsync.Run failed failed:
 ==> FindNextFile <src>: The system cannot find the file specified. ~ qrsync.Run failed

# Linux或者Mac下
[WARN] qbox.us/shell/qrsync-v2/qrsync.go:70: qrsync.Run failed failed:
 ==> stat <src>: no such file or directory ~ qrsync.Run failed
 ==> qbox.us/qrsync/v2/sync/sync.go:36: stat <src>: no such file or directory ~ sync.Run: src.ListAll failed

解決方案

  • Windows下配置以下:

{
    "src": "C:/Users/Username/Desktop/Test_Directory",
    ...
}

主要須要關注目錄分隔符爲/,另外文件夾路徑若是包含中文須要爲UTF-8編碼。

  • Linux或者Mac下配置以下:

{
    "src": "/Users/Username/Documents/Test_Directory",
    ...
}

建議路徑設置爲待同步目錄的絕對路徑。


更多關於iOS學習開發的文章請登錄個人我的博客www.zhunjiee.com,歡迎前來參觀學習

相關文章
相關標籤/搜索