iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 8
0
Microsoft Azure

深入淺出Azure常用服務系列 第 8

[Day8] 第八課 Azure 儲存體-2(Azure Storage) [基礎]

昨天談到使用NAS內建的工具備份到Azure blob空間,今天要介紹一下還有哪些
工具可用,而其中最常使用的是Azcopy這個工具
https://docs.microsoft.com/zh-tw/azure/storage/common/storage-use-azcopy-v10

Azcopy的使用情境大概分為下列幾種

  1. 需要將大型檔案搬進Azure環境,透過blob進行傳輸交換,地端先傳送檔案至blob,
    再從blob下載至Azure VM等其他地方
  2. 傳送客製化映像檔,印象檔大約在30GB~127GB不等,大型檔案傳輸用Azcopy會比
    瀏覽器上傳穩定很多
  3. 定期排程上傳

首先我們先在昨天nasbackup200922儲存體中建立一個容器,命名為Azcopy
https://ithelp.ithome.com.tw/upload/images/20200923/20129888wuXa9vg2NA.jpg
https://ithelp.ithome.com.tw/upload/images/20200923/20129888yi0IxZMk5v.jpg

與nas所需的金鑰不一樣,azcopy需要的是sas權杖(sas token)
所以我們要點到共用存取簽章
將允許的資源類型中的「服務、容器、物件」打勾,點選產生sas與連接字串https://ithelp.ithome.com.tw/upload/images/20200923/20129888sCdy2uF7TW.jpg

這時候我們會拿到SAS權杖
https://ithelp.ithome.com.tw/upload/images/20200923/20129888hBzi5Yk4mZ.jpg

接著我們下載Azcopy v10版本
https://aka.ms/downloadazcopy-v10-windows
將azcopy.exe解壓縮放在e:\azcopy目錄下
https://ithelp.ithome.com.tw/upload/images/20200923/20129888OkAJeLAKY9.jpg

Azcopy的語法介紹網頁如下,我擷取幾個常用的
https://docs.microsoft.com/zh-tw/azure/storage/common/storage-use-azcopy-blobs?toc=/azure/storage/blobs/toc.json

上傳檔案語法(實際使用單引號要換程雙引號)
azcopy copy '<local-file-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-name>'

範例
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt'

上傳目錄語法
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive

範例
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive

使用本機檔案系統的變更來更新容器語法
azcopy sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive

範例
azcopy sync 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive

所以我們現在來測試一下上傳整個目錄,回到Azcopy這個contanier確認一下路徑為
https://nasbackup200922.blob.core.windows.net/azcopy
https://ithelp.ithome.com.tw/upload/images/20200923/20129888f9Twg2i9O6.jpg

我們需要使用 SAS 權杖來授與 blob 資料的存取權,所以要將該權杖附加至每個
AzCopy 命令中的資源 URL。
例如:
'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'

Azcopy的語法

上傳目錄語法
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>?<sas_token>' –recursive

所以語法會長的像下面這個樣子

azcopy copy “E:\azcopy\200923” “https://nasbackup200922.blob.core.windows.net/azcopy?sv=2019-12-12&ss=bfqt&srt=sco&sp=rwdlacupx&se=2020-09-23T23:29:26Z&st=2020-09-23T15:29:26Z&spr=https&sig=Rsc2vLk109TCvX4r3bRRH4WHGiA0BPnXXXXXXX%3D” --recursive

我們實際用azcopy跑跑看
https://ithelp.ithome.com.tw/upload/images/20200923/20129888YpwTa0dCBo.jpg
結果如下
https://ithelp.ithome.com.tw/upload/images/20200923/20129888w0jWFagCw9.jpg
https://ithelp.ithome.com.tw/upload/images/20200923/20129888HJXazxATbA.jpg
那如果我更新了一個Day7.docx後,再跑一次azcopy呢?
結果是會把所有的檔案再覆蓋掉一次
https://ithelp.ithome.com.tw/upload/images/20200923/20129888SdiyRM4xMR.jpg

所以我們再放入新的檔案day8.docx再微調一下語法,從copy改成sync
最後實際上傳更新只有一個檔案,而非全數覆蓋
https://ithelp.ithome.com.tw/upload/images/20200923/20129888XGugJkSna9.jpg
https://ithelp.ithome.com.tw/upload/images/20200923/20129888AgfOxaMA36.jpg
以上就是今天分享的全部內容了,明天會講file的服務,如何比azcopy再更簡單的
操作方式,可以掛載雲端檔案儲存空間

See you next day ^^


上一篇
[Day7] 第七課 Azure 儲存體-1(Azure Storage) [基礎]
下一篇
[Day9] 第九課 Azure 儲存體-3(Azure Storage) [基礎]
系列文
深入淺出Azure常用服務32

尚未有邦友留言

立即登入留言