amazon-web-services - aws cli缓存位置不正确
问题描述
我已经设置了一个 Windows 任务计划来触发一个 .bat 文件upload.bat
。
cd C:\working
set AWS_CONFIG_FILE=%USERPROFILE%\.aws\config
set AWS_SHARED_CREDENTIALS_FILE=%USERPROFILE%\.aws\credentials
python upload.py
这是其中的一部分upload.py
,它正在调用 aws s3 cp 命令。
from subprocess import check_call
def upload_file():
try:
check_call("aws s3 cp inFile destination --profile myprofile")
except subprocess.CalledProcessError as e:
print('Error while upload!')
代码运行正常,但是执行后%HOMEDRIVE%%HOMEPATH%
在工作目录下生成了一个新文件夹,即C:\working\%HOMEDRIVE%%HOMEPATH%
这个文件夹里面有aws cli缓存C:\working\%HOMEDRIVE%%HOMEPATH%\.aws\cli\cache\xxxxx.json
,为什么我的用户的主目录没有生成这个缓存?相反,它在工作目录中生成了一个新文件夹?
解决方案
仅当您按照此处的代码homedir
担任角色时awscli
CACHE_DIR = os.path.expanduser(os.path.join('~', '.aws', 'cli', 'cache'))
类似的情况boto
也适用于此代码
CACHE_DIR = os.path.expanduser(os.path.join('~', '.aws', 'cli', 'cache'))
当您使用指定 AWS Identity and Access Management (IAM) 角色的共享配置文件时,AWS CLI 会调用 AWS STS AssumeRole 操作来检索临时凭证。然后存储这些凭据(在 ~/.aws/cli/cache 中)。后续 AWS CLI 命令使用缓存的临时凭证,直到它们过期,此时,AWS CLI 会自动刷新凭证。
推荐阅读
- python - -w 在 pydoc 中做了什么,它可以生成 .doc 输出吗?
- vb6 - vb6:mysql连接正常,但未显示数据库
- sql - 如何从昨天早上 6 点到今天早上 6 点选择记录
- python - 如何修复这些错误消息,以便我可以在 pandas 中读取这些 excel 文件?
- python - Python:“int”对象不可调用
- rrdtool - rrdtool 简单步骤图的帮助
- networking - 如何切换 K8s 集群中的默认 CNI 提供程序
- javascript - Javascript:如果语句包含无法解析的函数
- exiftool - 如何补偿文件名中不完整的日期/时间信息
- excel - 尝试使用 Selenium + Excel VBA 从 Chrome 浏览器中的站点抓取代码