Azure Storage系列之使用AzCopy遷移S3數據

    上一篇介紹了AzCopy兩個實際的使用場景,可以說對於azure blob的操作絕對是相當簡便的,但是現在AzCopy已經不僅僅侷限於Azure的操作了,我們還可以用AzCopy把S3的數據遷移過來,這對於像AWS遷移Azure的項目來說絕對是個相當好用的工具,不過目前這個功能還只是preview版本,要注意驗證下遷移的結果再刪除源端的數據


    具體的使用方法和blob之間拷貝數據稍有不同,主要在於身份驗證的方式有所區別

    

  • 若要使用 Azure 存儲授權,請使用 Azure Active Directory (AD)或共享訪問簽名(SAS)令牌。

  • 若要使用 AWS S3 進行授權,請使用 AWS 訪問密鑰和密鑰訪問密鑰


    所以S3進行授權的時候是直接用AK/SK做授權的


    AWS AK/SK的創建方式這裏就不詳細說了,直接來看下怎麼設置AK/SK來讓azcopy能識別到


    AzCopy其實是會直接讀取環境變量裏兩個固定的名稱的,分別是

  1. AWS_ACCESS_KEY_ID

  2. AWS_SECRET_ACCESS_KEY

    

    以PowerShell環境舉例,我們可以用以下方法設置環境變量

    

    $env:AWS_ACCESS_KEY_ID="xxx"

    $env:AWS_SECRET_ACCESS_KEY="xxxx"

    

    1.png


    將xxx替換爲實際的值即可,這種方法設置的環境變量都只是臨時變量,關閉PowerShell會話就會消失,這也是比較符合實際情況的,這種非常敏感的信息當然也不適合長時間保存


    我們可以使用azcopy env來驗證下是否可以正確讀取到環境變量


    2.png


    只要這裏能讀取出來數值,就代表環境變量的設置沒有問題了


    目標端Azure我們就直接使用Azure AD驗證了,具體的操作步驟就不多說了


    下邊來看下如何進行S3的遷移,AzCopy可以支持很多種S3對象,包括以下等

  1. 對象

  2. 目錄

  3. bucket

  4. 多個bucket



    語法基本是差不多的,主要來看下對象和目錄的遷移


    對象遷移

    Azcopy copy 'https://xxx.s3.cn-north-1.amazonaws.com.cn/CBB_EC2AMAZ-R566F8E/CBB_Cloud/obs2s3000001/haozip_v5.9.8.exe' 'https://xxx.blob.core.chinacloudapi.cn/aws/haozip_froms3.exe'

    這裏如果出現下邊的報錯,就證明是環境變量的設置有問題

    3.png


    正常輸出的結果如下:

    4.png


    在blob裏馬上就可以看到數據了

    5.png



    整體語法和blob之間進行操作還是很一致的


    目錄遷移

    目錄的遷移和blob遷移目錄基本也是一樣的,只需要加一個額外的參數即可

    Azcopy copy 'https://xxx.s3.cn-north-1.amazonaws.com.cn/CBB_EC2AMAZ-R566F8E/CBB_Cloud/obs2s3000001/15090887278028_sow.exe%24' 'https://xxx.blob.core.chinacloudapi.cn/aws/' --recursive=true

    6.png


    可以看到整個目錄都遷過來了!

    7.png


    依次類推,還可以遷移整個bucket,這對於遷移來說就太方便了

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章