如何在命令提示符的 azcopy 中隐藏 blob url 和 SAS 令牌

How to hide blob url and SAS token in the azcopy in the command prompt

我正在尝试将文件从 AWS S3 复制到 Azure blob。为此,我使用了 azcopy.

我已经在我的 windows 机器上下载了 azcopy 并通过命令提示符访问它。

根据需要,我在 azcopy env

中设置了我的 AWS 密钥和访问密钥 ID

现在,我可以将文件从 S3 移动到 blob

但每次都在命令中提供 SAS 令牌。是否可以隐藏它或者是否可以通过文件传递

cp "https://s3.amazonaws.com/testblobutopud/"   "SAS token" --recursive

我不需要直接在命令中传递这个令牌...有人可以帮助我吗

错误:

环境变量

更新:

请在环境变量中设置你的sastoken,比如它的名字是bloburl_sastoken,并用双引号把它的值括起来(它的值是这样的:https://blobtestutopus.blob.core.windows.net/?sv=2019-10-10&ss=bfqt&srt=sco&sp=rwdlacupx&se=2020-07-17T10:09:48Z&st=2020-07-17T02:09:48Z&spr=https&sig=xxxxxxxxx)。

然后在命令提示符下,使用下面的代码:

set temp_chars=""

set temp_url=%temp_chars%%bloburl_sastoken%

set url_sastoken=%temp_url:""=%

azcopy cp "https://s3.amazonaws.com/testblobutopud/" %url_sastoken%

原回答:

您可以将 sasToken 存储在环境变量中。步骤如下:

第一步:设置环境变量,可以使用命令或UI来完成。在这里,我只是通过 UI 设置它。请注意,对于它的值,您应该在英文模式下将值包裹在 双引号 中。截图如下:

第二步:然后打开cmd提示符,使用下面的代码(请去掉注释部分):

//set a variable for the blob url
set url="https://yy1.blob.core.windows.net/test5/myfoo1.txt"

//set a variable which contains blob url and sastoken
set temp_url=%url%%mysastoken%

//remove the redundant double quotes in blob url and sastoken
set url_sastoken=%temp_url:""=%

//copy it
azcopy copy "d:\foo.txt" %url_sastoken%

另一种方式是可以使用AzCopy login命令,那么这里就不需要使用sastoken了。