ローカル端末のファイルをAzure Blob Storageにアップロードしたい場合、AzCopyでAzure Blob Storageにファイルをアップロードすることができます。
使うコマンドは以下です。
azcopy copy SourcePath DestinationURI
DestinationURIにはAzure Blob StorageコンテナのSAS URIの入力が必要です。Azure Portalからも生成可能ですが、せっかくコマンドで完結させたいのにそれでは意味がないので以下のコマンドでの生成を目指します。
# Connect to Azure
Connect-AzAccount
# List Azure Subscriptions
Get-AzSubscription
# Define Variables
$subscriptionId = "yourSubscriptionId"
$storageAccountRG = "demo-azcopy-rg"
$storageAccountName = "tomsaccount"
$storageContainerName = "images"
$localPath = "C:\temp\images"
# Select right Azure Subscription
Select-AzSubscription -SubscriptionId $SubscriptionId
# Get Storage Account Key
$storageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $storageAccountRG -AccountName $storageAccountName).Value[0]
# Set AzStorageContext
$destinationContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
# Generate SAS URI
$containerSASURI = New-AzStorageContainerSASToken -Context $destinationContext -ExpiryTime(get-date).AddSeconds(3600) -FullUri -Name $storageContainerName -Permission rw
逆にダウンロードする際は以下のようにソースとDestinationを逆にするだけです。
azcopy copy DestinationURI SourcePath
なお、Azcopy copyコマンドはオプションで細かく設定もできるので興味ある方はこちらも見てみてください。
本記事はHow To Upload files to Azure Blob Storage using PowerShell and AzCopyを参考にしています。