使用 New-AzureStorageContext 时如何设置自定义路径

How to set custom path when using New-AzureStorageContext

我正在将一些文件复制到 Azure Blob 存储。我正在按照 Microsoft 文档 https://docs.microsoft.com/en-us/powershell/module/azure.storage/new-azurestoragecontainersastoken and https://docs.microsoft.com/en-us/powershell/module/azure.storage/new-azurestoragecontext 创建 SAS 令牌。我的代码可以正常工作,但我不知道如何为 New-AzureStorageContext 生成的 URL 设置自定义路径,因为我想复制到特定路径而不是容器根目录。是否有某种标志或 New-AzureStorageContext 允许我设置它?

# Set AzStorageContext
$destinationContext = New-AzureStorageContext -ConnectionString "DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=xxx;EndpointSuffix=xxx;"

# Generate SAS URI
$containerSASURI = New-AzureStorageContainerSASToken -Context $destinationContext -ExpiryTime(get-date).AddSeconds(3600) -FullUri -Name "xxx" -Permission rw -Protocol HttpsOnly

我的问题是 New-AzureStorageContainerSASToken 生成一个 URL 我用于 azure 复制目标 azcopy copy "xxx" $containerSASURI 但它复制到容器根目录,我希望它复制到特定目录,例如\test\demo

假设您从 PowerShell 手动复制 Container SAS URL 并在 azcopy 中使用它,最简单的方法是将路径插入 SAS URL.

例如,如果您的 Container SAS URL 类似于:

https://account.blob.core.windows.net/container-name?sv=2020-08-04&se=2021-10-04T18%3A30%3A00Z&sr=c&sp=w&sig={signature}

并且您想上传此容器内 test/demo 文件夹中的文件,您需要将此 SAS URL 更改为类似以下内容:

https://account.blob.core.windows.net/container-name/test/demo?sv=2020-08-04&se=2021-10-04T18%3A30%3A00Z&sr=c&sp=w&sig={signature}

并在 azcopy 中使用它。然后将所有文件上传到 container-name blob 容器内的 test/demo 文件夹。