簡體   English   中英

將CSV文件上傳到Azure BLOB存儲

[英]Upload csv file to Azure BLOB Storage

我正在嘗試將文件(csv文件)上傳到azure blob存儲。 我找到了一個腳本(請參見下文),但是在第一個try catch塊中它始終失敗。 在運行腳本時,它會問您兩件事:

  • localpath(我的C驅動器上的一個temp文件夾:c:\\ temp \\ test.csv)
  • storagecontainer:我創建了一個名為“ kepastorage”的存儲,並在其中創建了一個容器“ testfiles”。

      [CmdletBinding(SupportsShouldProcess = $true)] param( [Parameter(Mandatory = $true)] [string]$LocalPath, # The name of the storage container to copy files to. [Parameter(Mandatory = $true)] [string]$StorageContainer, # If specified, will recurse the LocalPath specified. [Parameter(Mandatory = $false)] [switch]$RecurseLocalPath, # If specified, will create the storage container. [Parameter(Mandatory = $false)] [switch]$CreateStorageContainer, # If specified, will copy files to the container if the container already exists. [Parameter(Mandatory = $false)] [switch]$Force ) # The script has been tested on Powershell 3.0 Set-StrictMode -Version 3 # Following modifies the Write-Verbose behavior to turn the messages on globally for this session $VerbosePreference = "Continue" # Check if Windows Azure Powershell is avaiable if ((Get-Module -ListAvailable Azure) -eq $null) { throw "Windows Azure Powershell not found! Please install from http://www.windowsazure.com/en-us/downloads/#cmd-line-tools" } workflow UploadFilesInParallel { param( # The name of the storage container to copy files to. [Parameter(Mandatory = $true)] [string]$StorageContainer, # An array of files to copy to the storage container. [Parameter(Mandatory = $true)] [System.Object[]]$Files ) if ($Files.Count -gt 0) { foreach -parallel ($file in $Files) { $blobFileName = Split-Path -Path $file.FullName -NoQualifier try { Set-AzureStorageBlobContent -Container $StorageContainer ` -File $file.FullName -Blob $blobFileName ` -ConcurrentTaskCount 0 -Force } catch { $warningMessage = "Unable to upload file " + $file.FullName Write-Warning -Message $warningMessage } } } } # Ensure the local path given exists. Create it if switch specified to do so. if (-not (Test-Path $LocalPath -IsValid)) { throw "Source path '$LocalPath' does not exist. Specify an existing path." } # Get a list of files from the local folder. if ($RecurseLocalPath.IsPresent) { # $files = ls -Path $LocalPath -File -Recurse $files = @(ls -Path $LocalPath -File -Recurse) } else { # $files = ls -Path $LocalPath -File $files = @(ls -Path $LocalPath -File) } if ($files -ne $null -and $files.Count -gt 0) { # Create the storage container. if ($CreateStorageContainer.IsPresent) { $existingContainer = Get-AzureStorageContainer | Where-Object { $_.Name -like $StorageContainer } if ($existingContainer) { $msg = "Storage container '" + $StorageContainer + "' already exists." if (!$Force.IsPresent -and !$PSCmdlet.ShouldContinue( "Copy files to existing container?", $msg)) { throw "Specify a different storage container name." } } else { if ($PSCmdlet.ShouldProcess($StorageContainer, "Create Container")) { $newContainer = New-AzureStorageContainer -Name $StorageContainer "Storage container '" + $newContainer.Name + "' created." } } } # Upload the files to storage container. $fileCount = $files.Count if ($PSCmdlet.ShouldProcess($StorageContainer, "Copy $fileCount files")) { $time = [DateTime]::UtcNow UploadFilesInParallel -StorageContainer $StorageContainer -Files $files $duration = [DateTime]::UtcNow - $time "Uploaded " + $files.Count + " files to blob container '" + $StorageContainer + "'." "Total upload time: " + $duration.TotalMinutes + " minutes." } } else { Write-Warning "No files found." } 

有人知道我在做什么錯嗎? 謝謝。

您可以嘗試使用此處解釋的PowerShell腳本: 將文件上傳到Azure Blob存儲

$SubscriptionName = ""
$SubscriptionId = ""
$DestContainer = ""
$StorageAccountName = ""
Import-AzurePublishSettingsFile -PublishSettingsFile "<Location of the publishsettings-file>"
Set-AzureSubscription -SubscriptionId $SubscriptionId -CurrentStorageAccountName $StorageAccountName
Select-AzureSubscription -SubscriptionName $SubscriptionName
Set-AzureStorageBlobContent -File "<File you want to upload>" -Container $DestContainer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM