寻找自动同步机制来同步从本地服务器到blob容器的导出文件。我们目前正在使用AZCOPY,这需要大量的时间和人力。我们希望减少手动工作,以保存迁移数据的时间,并通过Power Shell或其他方法永久设置自动数据同步。当前正在使用AZCOPY
atmip9wb1#
AzureRM
Install-Module AzureRM
Login-AzureRmAccount
*登录后,您必须选择包含BlobStorage帐户的**订阅。请使用以下命令:
Select-AzureRmSubscription -SubscriptionId <SubscriptionId>
$context = New-AzureStorageContext -StorageAccountName <StorageAccountName> -StorageAccountKey <StorageAccountKey>
StorageAccountName
BlobStorageAccount
Sync-AzureStorageBlob
Sync-AzureStorageBlob -DestinationContainer <ContainerName> -DestinationContext $context -Path C:\data -Force
·打开Task Scheduler应用程序。·单击Create任务按钮。·在General tab中,指定任务的名称和描述,然后选择将运行任务的用户帐户。·在Triggers tab中,单击New button并设置任务的计划。·在Actions tab中,单击New button并选择启动程序操作。·在Program/script field中,指定PowerShell可执行文件(powershell.exe)的路径。·在添加参数字段中,指定包含Sync-AzureStorageBlob cmdlet的脚本的路径。·单击确定按钮保存任务。脚本现在根据****指定的计划运行,并自动将本地文件夹的内容与blob**存储同步。
Task Scheduler
Create
General tab
Triggers tab
New button
Actions tab
Program/script field
- # Connect to Azure Connect-AzAccount # Get the storage context $context = (Get-AzStorageAccount -ResourceGroupName <resource_group_name> -Name <storage_account_name>).Context # Get the list of local files $localFiles = Get-ChildItem -Path <local_path> # Upload local file to the Blob container foreach ($file in $localFiles) { Set-AzStorageBlobContent -Container <container_name> -FilePath $file.FullName -Blob $file.Name -Context $context } # Get the list of Blob files $blobFiles = Get-AzStorageBlob -Container <container_name> -Context $context # Delete old versions of the files in the Blob container foreach ($blobFile in $blobFiles) { $localFile = (Get-ChildItem -Path <local_path> | Where-Object { $_.Name -eq $blobFile.Name }).FullName if ($localFile -ne $null) { if ($blobFile.Properties.LastModified -lt (Get-ChildItem -Path $localFile).LastWriteTime) { Remove-AzStorageBlob -Blob $blobFile.Name -Container <container_name> -Context $context } } else { Remove-AzStorageBlob -Blob $blobFile.Name -Container <container_name> -Context $context } }
引用自Microsoft文档。
1条答案
按热度按时间atmip9wb1#
*首先确保本地服务器上安装了最新版本的
AzureRM
模块。*登录后,您必须选择包含BlobStorage帐户的**订阅。请使用以下命令:
*接下来,我们需要创建存储上下文,该上下文包含访问blob存储帐户所需的信息。使用以下命令:
StorageAccountName
的名称,替换为BlobStorageAccount
的访问密钥。Sync-AzureStorageBlob
cmdlet将本地文件夹与blob存储同步。Sync-AzureStorageBlob
cmdlet。你可以使用Windows的任务计划程序**自动运行该脚本。**为此,请按照下列步骤操作:·打开
Task Scheduler
应用程序。·单击
Create
任务按钮。·在
General tab
中,指定任务的名称和描述,然后选择将运行任务的用户帐户。·在
Triggers tab
中,单击New button
并设置任务的计划。·在
Actions tab
中,单击New button
并选择启动程序操作。·在
Program/script field
中,指定PowerShell可执行文件(powershell.exe)的路径。·在添加参数字段中,指定包含
Sync-AzureStorageBlob
cmdlet的脚本的路径。·单击确定按钮保存任务。
脚本现在根据****指定的计划运行,并自动将本地文件夹的内容与blob**存储同步。
引用自Microsoft文档。