# ****************************************************** # * # * Name: save-data-2-blob-storage.ps1 # * # * Design Phase: # * Author: John Miner # * Date: 08-26-2017 # * Purpose: Create one container and load sample # * stock data. # * # ****************************************************** # Root name for objects in this script $root = "tips17" # # Azure Subscriptions # # Prompts you for azure credentials Add-AzureRmAccount # Clear the screen Clear-Host # List my subscriptions Get-AzureRmSubscription # Pick my internal subscription $SubscriptionId = '26efaaba-5054-4f31-b922-84ab9eff218e' Set-AzureRmContext -SubscriptionId $SubscriptionId # # Create a resource group # # New resource group New-AzureRmResourceGroup -Name "rg4$root" -Location "East US 2" # Clear the screen Clear-Host # List resource groups Get-AzureRmResourceGroup # Delete resource group # Remove-AzureRmResourceGroup -Name "rg4$root" -Force # # Create a storage account # # Create new storage account (lowercase) New-AzureRmStorageAccount –StorageAccountName "sa4$root" -ResourceGroupName "rg4$root" -Location "East US 2" -Type "Standard_GRS" # Clear the screen Clear-Host # Show the account $A = Get-AzureRmStorageAccount $A.Sku $A.Type # Delete storage account #Remove-AzureRmStorageAccount -ResourceGroupName "rg4$root" -Name "sa4$root" # # Create a storage container # # Grab storage context - work around for RM $StorageContext = Get-AzureRmStorageAccount -Name "sa4$root" -ResourceGroupName "rg4$root" # Create new container $StorageContext | New-AzureStorageContainer -Name "sc4$root" -Permission Off # Clear the screen Clear-Host # Show the container $StorageContext | Get-AzureStorageContainer # Remove the container # $StorageContext | Remove-AzureStorageContainer -Name "sc4$root" -Force # # Upload master stock list # # File locations $input = "C:\STOCKS\S&P-500.CSV" $output = "C:\STOCKS\PACKING-LIST.TXT" $blob = "INBOUND/PACKING-LIST.TXT" # Create package list $list = Import-Csv -Path $input -Delimiter ',' -Encoding ascii | Sort-Object -Property symbol $files = $list | Select-Object @{Name="files";Expression={$_."symbol" + "-FY2016.CSV" }} $files | Select-Object -ExpandProperty files | Out-File -Encoding ascii $output # Grab storage context - work around for RM $StorageContext = Get-AzureRmStorageAccount -Name "sa4$root" -ResourceGroupName "rg4$root" # Upload file to azure $StorageContext | Set-AzureStorageBlobContent -Container "sc4$root" -Blob $blob -File $output -Force # # Upload files to azure (stocks) # # Set source path $srcpath = "c:\stocks\outbound\" # Set counter $cnt = 0 # Local file path $list = Get-ChildItem $srcpath -Filter *.csv # For each stock foreach ($file in $list) { # Source file $srcfull = $srcpath + $file.Name # Destination blob $dstblob = "INBOUND/" + $file.Name # Upload file to azure $StorageContext | Set-AzureStorageBlobContent -Container "sc4$root" -Blob $dstblob -File $srcfull -Force # Increment count $cnt = $cnt + 1 # Show message Write-Host $srcfull Write-Host $cnt } # # List all blobs in the container # $blob = "INBOUND/*.TXT" # List all blobs in a container. $StorageContext | Get-AzureStorageBlob -Container "sc4$root" -Blob $blob # # Download file from azure # # $StorageContext | Get-AzureStorageBlob -Container "sc4$root" -Blob "INBOUND/MSFT-FY2016.CSV" | Get-AzureStorageBlobContent -Destination "c:\temp\" # # Upload format file # # File locations $input = "C:\MSSQLTIPS\MINER2017\ARTICLE-2017-07-AZURE-SQLDB-BULK-INSERT\STOCK-DATA.FMT" $blob = "INBOUND/STOCK-DATA.FMT" # Grab storage context - work around for RM $StorageContext = Get-AzureRmStorageAccount -Name "sa4$root" -ResourceGroupName "rg4$root" # Upload file to azure $StorageContext | Set-AzureStorageBlobContent -Container "sc4$root" -Blob $blob -File $input -Force