Start-AzureStorageBlobCopy

Starts to copy a blob.

Warning

The AzureRM PowerShell module has been officially deprecated as of February 29, 2024. Users are advised to migrate from AzureRM to the Az PowerShell module to ensure continued support and updates.

Although the AzureRM module may still function, it's no longer maintained or supported, placing any continued use at the user's discretion and risk. Please refer to our migration resources for guidance on transitioning to the Az module.

Syntax

Start-AzureStorageBlobCopy
     [-SrcBlob] <String>
     -SrcContainer <String>
     -DestContainer <String>
     [-DestBlob <String>]
     [-PremiumPageBlobTier <PremiumPageBlobTier>]
     [-Context <IStorageContext>]
     [-DestContext <IStorageContext>]
     [-Force]
     [-ServerTimeoutPerRequest <Int32>]
     [-ClientTimeoutPerRequest <Int32>]
     [-DefaultProfile <IAzureContextContainer>]
     [-ConcurrentTaskCount <Int32>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-AzureStorageBlobCopy
     -CloudBlob <CloudBlob>
     -DestContainer <String>
     [-DestBlob <String>]
     [-PremiumPageBlobTier <PremiumPageBlobTier>]
     [-Context <IStorageContext>]
     [-DestContext <IStorageContext>]
     [-Force]
     [-ServerTimeoutPerRequest <Int32>]
     [-ClientTimeoutPerRequest <Int32>]
     [-DefaultProfile <IAzureContextContainer>]
     [-ConcurrentTaskCount <Int32>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-AzureStorageBlobCopy
     -CloudBlob <CloudBlob>
     -DestCloudBlob <CloudBlob>
     [-PremiumPageBlobTier <PremiumPageBlobTier>]
     [-Context <IStorageContext>]
     [-DestContext <IStorageContext>]
     [-Force]
     [-ServerTimeoutPerRequest <Int32>]
     [-ClientTimeoutPerRequest <Int32>]
     [-DefaultProfile <IAzureContextContainer>]
     [-ConcurrentTaskCount <Int32>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-AzureStorageBlobCopy
     -CloudBlobContainer <CloudBlobContainer>
     [-SrcBlob] <String>
     -DestContainer <String>
     [-DestBlob <String>]
     [-PremiumPageBlobTier <PremiumPageBlobTier>]
     [-Context <IStorageContext>]
     [-DestContext <IStorageContext>]
     [-Force]
     [-ServerTimeoutPerRequest <Int32>]
     [-ClientTimeoutPerRequest <Int32>]
     [-DefaultProfile <IAzureContextContainer>]
     [-ConcurrentTaskCount <Int32>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-AzureStorageBlobCopy
     -SrcShareName <String>
     -SrcFilePath <String>
     -DestContainer <String>
     [-DestBlob <String>]
     [-Context <IStorageContext>]
     [-DestContext <IStorageContext>]
     [-Force]
     [-ServerTimeoutPerRequest <Int32>]
     [-ClientTimeoutPerRequest <Int32>]
     [-DefaultProfile <IAzureContextContainer>]
     [-ConcurrentTaskCount <Int32>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-AzureStorageBlobCopy
     -SrcShare <CloudFileShare>
     -SrcFilePath <String>
     -DestContainer <String>
     [-DestBlob <String>]
     [-Context <IStorageContext>]
     [-DestContext <IStorageContext>]
     [-Force]
     [-ServerTimeoutPerRequest <Int32>]
     [-ClientTimeoutPerRequest <Int32>]
     [-DefaultProfile <IAzureContextContainer>]
     [-ConcurrentTaskCount <Int32>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-AzureStorageBlobCopy
     -SrcDir <CloudFileDirectory>
     -SrcFilePath <String>
     -DestContainer <String>
     [-DestBlob <String>]
     [-Context <IStorageContext>]
     [-DestContext <IStorageContext>]
     [-Force]
     [-ServerTimeoutPerRequest <Int32>]
     [-ClientTimeoutPerRequest <Int32>]
     [-DefaultProfile <IAzureContextContainer>]
     [-ConcurrentTaskCount <Int32>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-AzureStorageBlobCopy
     -SrcFile <CloudFile>
     -DestContainer <String>
     [-DestBlob <String>]
     [-Context <IStorageContext>]
     [-DestContext <IStorageContext>]
     [-Force]
     [-ServerTimeoutPerRequest <Int32>]
     [-ClientTimeoutPerRequest <Int32>]
     [-DefaultProfile <IAzureContextContainer>]
     [-ConcurrentTaskCount <Int32>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-AzureStorageBlobCopy
     -SrcFile <CloudFile>
     -DestCloudBlob <CloudBlob>
     [-Context <IStorageContext>]
     [-DestContext <IStorageContext>]
     [-Force]
     [-ServerTimeoutPerRequest <Int32>]
     [-ClientTimeoutPerRequest <Int32>]
     [-DefaultProfile <IAzureContextContainer>]
     [-ConcurrentTaskCount <Int32>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-AzureStorageBlobCopy
     -AbsoluteUri <String>
     -DestContainer <String>
     -DestBlob <String>
     [-Context <IStorageContext>]
     [-DestContext <IStorageContext>]
     [-Force]
     [-ServerTimeoutPerRequest <Int32>]
     [-ClientTimeoutPerRequest <Int32>]
     [-DefaultProfile <IAzureContextContainer>]
     [-ConcurrentTaskCount <Int32>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Description

The Start-AzureStorageBlobCopy cmdlet starts to copy a blob.

Examples

Example 1: Copy a named blob

C:\PS>Start-AzureStorageBlobCopy -SrcBlob "ContosoPlanning2015" -DestContainer "ContosoArchives" -SrcContainer "ContosoUploads"

This command starts the copy operation of the blob named ContosoPlanning2015 from the container named ContosoUploads to the container named ContosoArchives.

Example 2: Get a container to specify blobs to copy

C:\PS>Get-AzureStorageContainer -Name "ContosoUploads" | Start-AzureStorageBlobCopy -SrcBlob "ContosoPlanning2015" -DestContainer "ContosoArchives"

This command gets the container named ContosoUploads, by using the Get-AzureStorageContainer cmdlet, and then passes the container to the current cmdlet by using the pipeline operator. That cmdlet starts the copy operation of the blob named ContosoPlanning2015. The previous cmdlet provides the source container. The DestContainer parameter specifies ContosoArchives as the destination container.

Example 3: Get all blobs in a container and copy them

C:\PS>Get-AzureStorageBlob -Container "ContosoUploads" | Start-AzureStorageBlobCopy -DestContainer "ContosoArchives"

This command gets the blobs in the container named ContosoUploads, by using the Get-AzureStorageBlob cmdlet, and then passes the results to the current cmdlet by using the pipeline operator. That cmdlet starts the copy operation of the blobs to the container named ContosoArchives.

Example 4: Copy a blob specified as an object

C:\PS>$SrcBlob = Get-AzureStorageBlob -Container "ContosoUploads" -Blob "ContosoPlanning2015"
C:\PS> $DestBlob = Get-AzureStorageBlob -Container "ContosoArchives" -Blob "ContosoPlanning2015Archived"
C:\PS> Start-AzureStorageBlobCopy -ICloudBlob $SrcBlob.ICloudBlob -DestICloudBlob $DestBlob.ICloudBlob

The first command gets the blob named ContosoPlanning2015 in the container named ContosoUploads. The command stores that object in the $SrcBlob variable. The second command gets the blob named ContosoPlanning2015Archived in the container named ContosoArchives. The command stores that object in the $DestBlob variable. The last command starts the copy operation from the source container to the destination container. The command uses standard dot notation to specify the ICloudBlob objects for the $SrcBlob and $DestBlob blobs.

Example 5: Copy a blob from a URI

C:\PS>$Context = New-AzureStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >"
C:\PS> Start-AzureStorageBlobCopy -AbsoluteUri "http://www.contosointernal.com/planning" -DestContainer "ContosoArchive" -DestBlob "ContosoPlanning2015" -DestContext $Context

This command creates a context for the account named ContosoGeneral that uses the specified key, and then stores that key in the $Context variable. The second command copies the file from the specified URI to the blob named ContosoPlanning in the container named ContosoArchive. The command starts the copy operation in the context stored in $Context.

Parameters

-AbsoluteUri

Specifies the absolute URI of a file to copy to an Azure Storage blob.

Type:String
Aliases:SrcUri, SourceUri
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ClientTimeoutPerRequest

Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CloudBlob

Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzureStorageBlob cmdlet.

Type:CloudBlob
Aliases:SrcICloudBlob, SrcCloudBlob, ICloudBlob, SourceICloudBlob, SourceCloudBlob
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-CloudBlobContainer

Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet copies a blob from the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzureStorageContainer cmdlet.

Type:CloudBlobContainer
Aliases:SourceCloudBlobContainer
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ConcurrentTaskCount

Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Context

Specifies an Azure storage context. To obtain a storage context, use the New-AzureStorageContext cmdlet.

Type:IStorageContext
Aliases:SrcContext, SourceContext
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DefaultProfile

The credentials, account, tenant, and subscription used for communication with Azure.

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DestBlob

Specifies the name of the destination blob.

Type:String
Aliases:DestinationBlob
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DestCloudBlob

Specifies a destination CloudBlob object

Type:CloudBlob
Aliases:DestICloudBlob, DestinationCloudBlob, DestinationICloudBlob
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DestContainer

Specifies the name of the destination container.

Type:String
Aliases:DestinationContainer
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DestContext

Specifies an Azure storage context. To obtain a storage context, use the New-AzureStorageContext cmdlet.

Type:IStorageContext
Aliases:DestinationContext
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PremiumPageBlobTier

Premium Page Blob Tier

Type:PremiumPageBlobTier
Accepted values:Unknown, P4, P6, P10, P20, P30, P40, P50, P60
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerTimeoutPerRequest

Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SrcBlob

Specifies the name of the source blob.

Type:String
Aliases:SourceBlob
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SrcContainer

Specifies the name of the source container.

Type:String
Aliases:SourceContainer
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SrcDir

Specifies a CloudFileDirectory object from Azure Storage Client library.

Type:CloudFileDirectory
Aliases:SourceDir
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SrcFile

Specifes a CloudFile object from Azure Storage Client library. You can create it or use Get-AzureStorageFile cmdlet.

Type:CloudFile
Aliases:SourceFile
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SrcFilePath

Specifies the source file relative path of source directory or source share.

Type:String
Aliases:SourceFilePath
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SrcShare

Specifies a CloudFileShare object from Azure Storage Client library. You can create it or use Get-AzureStorageShare cmdlet.

Type:CloudFileShare
Aliases:SourceShare
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SrcShareName

Specifies the source share name.

Type:String
Aliases:SourceShareName
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

CloudBlob

CloudBlobContainer

CloudFile

Parameters: SrcFile (ByValue)

String

IStorageContext

Outputs

AzureStorageBlob