为啥我不能在 cmd 中设置环境变量。无法使用 azcopy 从 S3 复制

Posted

技术标签:

【中文标题】为啥我不能在 cmd 中设置环境变量。无法使用 azcopy 从 S3 复制【英文标题】:Why can't I set env vars in cmd. Unable to use azcopy to copy from S3为什么我不能在 cmd 中设置环境变量。无法使用 azcopy 从 S3 复制 【发布时间】:2021-12-02 20:56:24 【问题描述】:

我需要将 3S 存储桶复制到 Azure blob 存储容器。我正在尝试使用 azcopy。但是它不起作用,因为我无法将所需的 AWS 密钥设置为环境变量。

我已遵循此指南:https://www.thomasmaurer.ch/2019/06/migrate-aws-s3-buckets-to-azure-blob-storage/

我设置了变量:

set AWS_ACCESS_KEY_ID=<my key>
set AWS_SECRET_ACCESS_KEY=<my secret>

然后我使用:

azcopy copy <my s3 bucket> <my blob container SAS> --recursive=true

它吐出这个:

INFO: Scanning...

failed to perform copy command due to error: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables must be set before creating the S3 AccessKey credential

当我尝试 azcopy env 时,它显示没有为 aws 密钥设置任何内容并为秘密进行了编辑:

INFO: Name: AWS_ACCESS_KEY_ID
Current Value:
Description: The AWS access key ID for S3 source used in service to service copy.

INFO: Name: AWS_SECRET_ACCESS_KEY
Current Value: REDACTED
Description: The AWS secret access key for S3 source used in service to service copy.

一如既往地感谢任何帮助!

【问题讨论】:

【参考方案1】:

解决方案是使用:

setx AWS_ACCESS_KEY_ID 设置 AWS_SECRET_ACCESS_KEY

重新启动的终端再次尝试 azcopy,它成功了!

【讨论】:

以上是关于为啥我不能在 cmd 中设置环境变量。无法使用 azcopy 从 S3 复制的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能在 React 中设置这个状态?

无法在 Ubuntu 中设置颤振环境变量

在 Windows .cmd 文件或批处理文件的路径中设置带有空格的路径变量

为啥我不能在 Ubuntu 12.04 中设置 JAVA_HOME VARIABLE?

在windows中设置环境变量PATH

bat中设置Java环境变量