繁体   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