如何将所有文件目录从本机移动/复制到s3桶



我正在尝试移动/复制特定的扩展名文件(.xlsx)移动到我的s3桶。

我使用下面的命令。

cmd= 'aws s3 cp myfolder/*.xlsx s3://mybucket/myfolder --recursive'
where:
**myfolder** is my local system directory where the file is present
**s3://mybucket/myfolder** : folder location where i am placing all the .xlsx file in s3.

但是当我使用python

运行这个命令时
os.system(cmd)
Getting Error : 255 

谁能给我建议一些改变或其他方法来实现这个目标?注意:我已经用s3键配置了我的系统cmd,所有的命令也都工作得很好。

更新:

cmd = '$aws s3 cp myfolder/*.xlsx s3://mybucket/myfolder --recursive'
getting error:1 on interactive python.

不支持在命令的路径参数中使用UNIX风格的通配符。使用--exclude--include过滤器

aws s3 cp myfolder s3://mybucket/myfolder/ --recursive --exclude "*" --include "*.xlsx"

参数的顺序很重要

请注意,运行帮助命令aws s3 help会带来与下面链接相同的命令参考。来自AWS文档:

目前,不支持在命令的路径参数。但是,大多数命令都有--exclude "<value>"--include "<value>"参数,可以实现想要的结果。这些参数执行模式匹配排除或包含特定的文件或对象。下面的模式支持符号

  • "*":匹配所有
  • "?":匹配任何单个字符
  • "[sequence]":匹配序列
  • 中的任何字符
  • "[!sequence]":匹配任何不在"sequence">
  • 中的字符

请注意,默认情况下,包含所有文件。这意味着只提供--include过滤器不会改变文件是什么转移。--include将只重新包含已被从--exclude过滤器中排除。如果你只想上传文件对于特定的扩展名,您需要首先排除所有文件,然后重新包含具有特定扩展名的文件。

最新更新