Categories
程式開發

如何使用 AZCOPY 同步 Azure Blob 存儲


幾個月前,我寫了一篇關於 如何使用 AzCopy 同步文件到 Azure Blob 存儲 的博客。今天針對我在 GitHub 上使用 AzCopy 的一個問題,有了一個激動人心的更新。這意味著您現在可以使用 AzCopy 從 Azure Blob 到 Azure Blob。
Azure Blob Azure Blob (源必須包括共享訪問令牌 SAS 或者可公共訪問,對於目標可以支持共享訪問令牌 SAS 或者 OAuth 認證)

如何在 Azure Blob 存儲之間同步

作為準備工作,您將需要 安装并设置 AzCopy ,或者在 Azure Cloud Shell 中使用 AzCopy.

您可以使用下述命令將 Azure blob 存儲同步到另外一個 Azure Blob 中。該命令將僅僅同步發生變化和新建的文件。其比較文件的名稱和最後修改時間戳。

azcopy sync "https://(account).blob.core.windows.net/(container)/(path/to/blob)?(SAS)" "https://(account).blob.core.windows.net/(container)/(path/to/blob)?(SAS)"

對於目標,你既可以使用 SAS 或者 OAuth。為了同步一個存儲賬號中的整個容器或者文件夾到另外一個賬號,你可以使用下述命令:

azcopy sync "https://(account).blob.core.windows.net/(container)?(SAS)" "https://(account).blob.core.windows.net/(container)"

作為示例,這裡我將從在北歐區的 Azure 存儲賬號的一個容器中的文件,複製到西歐區的另一個存儲賬號中。

如何使用 AZCOPY 同步 Azure Blob 存儲 1

我使用如下命令來實現:

azcopy sync "https://tomnortheurope.blob.core.windows.net/myfiles?(SAS)" "https://tomwesteurope.blob.core.windows.net/destinationfiles?(SAS)" --recursive=true

如何使用 AZCOPY 同步 Azure Blob 存儲 2

您可以看到,在第一次運行時,它確實將所有文件從源存儲帳戶複製到了目標位置。在第二次運行中,它沒有復制任何文件,因為文件已經存在了。

如何使用 AZCOPY 同步 Azure Blob 存儲 3

下面是一系列可以使用的參數。您可以在微軟 Docs上發現更多的關於 AzCopy sync 的命令。

–block-size-mb 在上傳到 Azure 存儲或者從 Azure 存儲下載時,使用的塊尺寸 (以 MiB 為單位) 。默認基於文件尺寸自動計算。支持使用十進制小數(例如:0.25)。

–check-md5 字符串,指定在下載時,如何強制 MD5 散列值用於驗證。該選項僅在下載時可用。可用值包括:NoCheck, LogOnly, FailIfDifferent, FailIfDifferentOrMissing. (默認值:‘FailIfDifferent’)。

–delete-destination 字符串。定義是否刪除源中沒有提供的目標中的其它文件。可以設置為: true, false, 或者 prompt。如果設置為 prompt,在刪除文件或者 blob 之前,用戶將被要求確認 (默認 false)。

–exclude-attributes 字符串(僅 Windows),排除匹配文件屬性的文件。例如:A;S;R

–exclude-pattern 字符串,排除匹配模板列表的文件,例如:.jpg;*.pdf;exactName

-h, –help 使用幫助

–include-attributes 字符串 (僅 Windows),僅包含匹配文件屬性列表的文件。例如: A;S;R

–include-pattern 字符串,僅包含匹配模板列表的文件。例如: .jpg;.pdf;exactName

–log-level 字符串, 定義日誌文件的日誌級別。可用的級別:INFO(所有的請求和響應), WARNING(慢速響應), ERROR(僅僅失敗的請求), 以及 NONE(沒有輸出日誌). (默認 INFO). (default “INFO”)

–put-md5 對每個文件創建 MD5 散列,並保存將散列值作為目標 blob 或文件的 Content-MD5 屬性。 (默認情況下,創建散列)。僅在上傳時可用。

–recursive 默認為 True,當在目錄之間同步的時候,遞歸進入子目錄 (默認為 true)。

如果您希望了解更多關於同步本地文件到 Azure blob 存儲的內容,請查看我的博客。我希望這可以幫助您快速查看如何使用 AzCopy 同步 Azure blob 存儲。如果您希望學習更多內容,請查看微軟 Docs 中關於如何 使用 AzCopy 傳輸數據。如果有任何問題,請留言。

原文鏈接

https://github.com/azureselected/azureselected/blob/master/content/cloud-advocate/2019-12/how-to-sync-azure-blob-storage-with-azcopy.md