我正在制作脚本,以将文件从s3存储桶下载到本地linux文件夹。为此,我必须对要下载内容的存储桶和文件夹使用动态值。
我知道该怎么办
aws s3 cp s3://bucket /linux/local/folder --recursive --p alusta
但是如何在运行时接受存储桶值
dwn_cmd = "aws s3 cp s3://bucket/name/" + str(year_name) + '/' + str(month_name)
folder_path = "/local/linux/folder/" + folder_name
#subprocess.call(['aws','s3','cp',dwn_cmd,folder_path,'--recursive','--p', 'alusta'])
这显示了子进程需要s3存储桶路径和本地文件夹路径的错误。我认为这不是前进的道路。如果我硬编码路径,它正在工作,但不行。我怎么能达到我的结果
答案 0 :(得分:0)
使用
dwn_cmd = "aws s3 cp s3://bucket/name/" + "2019" + '/' + "June"
folder_path = "/local/linux/folder/" + "test"
您将打电话
subprocess.call(['aws','s3','cp',
"aws s3 cp s3://bucket/name/2019/June",
"/local/linux/folder/test",
'--recursive', '--p', 'alusta']);
从aws s3 cp
删除dwn_command
参数:
dwn_cmd = "s3://bucket/name/" + "2019" + '/' + "June"
注意:请勿使用
subprocess.call([dwn_cmd,folder_path,'-recursive','-p','alusta'])#错误
aws
和s3
之间的空格将被视为命令名称的一部分,因此它将在目录的子目录中使用3个空格aws s3 cp s3:
查找该命令。