aws上传和下载显示Access Key Id 不存在
The Aws Access Key Id you provided does not exist in our recordss
由于需要使用python调用aws上传数据,在终端调用aws时没有任何问题,但是在使用python执行aws的shell指令时就出现这样的问题。
不管是用os.system还是subprocess.call
试过很多方法,后来发现是因为python执行shell指令时会开启subshell,而subshell中是无法读取到默认配置的–endpoint url 的,所以在subshell中执行的时候,可能需要指定endpoint url
例:subprocess.call([‘aws ‘,‘s3’ ,‘ls’,’***’,’–endpoint url =https://10.11.242.14’])
当然,python也可以直接调用aws库执行上传或者下载。
例如:
def data_upload(file_path,upload_dir_list,dst_dir=None):
for upload_name in upload_dir_list:
arg2="s3 cp "+file_path+upload_name+"/ s3://Data_Collection/"+upload_name+" --recursive --endpoint-url=http://10.5.41.189:9090"
driver.main(arg2.split())