如何使用python在运行时传递存储桶和本地文件夹值的同时将所有文件从s3存储桶下载到本地linux服务器

时间:2019-06-03 13:23:31

标签: linux python-3.x amazon-s3 subprocess

我正在制作脚本,以将文件从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存储桶路径和本地文件夹路径的错误。我认为这不是前进的道路。如果我硬编码路径,它正在工作,但不行。我怎么能达到我的结果

1 个答案:

答案 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'])#错误 awss3之间的空格将被视为命令名称的一部分,因此它将在目录的子目录中使用3个空格aws s3 cp s3:查找该命令。