使用 aws 客户端仅从单个目录复制 s3 文件(非递归)
Use the aws client to copy s3 files from a single directory only (non recursively)
按照这些思路考虑 aws bucket/key 结构
myBucket/dir1/file1
myBucket/dir1/file2
myBucket/dir1/dir2/dir2file1
myBucket/dir1/dir2/dir2file2
使用时:
aws s3 cp --recursive s3://myBucket/dir1/ .
然后我们将dir2file[1,2]
连同file[1,2]
抄下来。如何只复制后面的文件,不复制子目录下的文件?
回复评论:。我对为每个子目录放置一个 --exclude
不感兴趣,所以这不是
的副本
您可以使用 --exclude
选项排除路径,例如
aws s3 cp s3://myBucket/dir1/ . --recursive --exclude "dir1/dir2/*"
可以使用 aws cli 帮助找到更多选项和示例
aws s3 cp help
据我了解,您想确保复制当前目录中的文件,但不应复制子目录中的任何内容。我想你可以使用类似的东西。
aws s3 cp s3://myBucket/dir1/ . --recursive --exclude "*/*"
这里我们排除了在 "dir1" 之后有路径分隔符的文件。
使用 aws s3 cp
复制文件时无法控制递归深度。 aws s3 ls
.
也不支持
因此,如果您不想使用 --exclude
或 --include
选项,我建议您:
- 使用不带
--recursive
选项的 aws s3 ls
命令直接列出目录下的文件,仅从输出中提取文件名并将名称保存到文件中。参考这个
- 然后编写一个简单的脚本来读取文件名并为每个执行
aws s3 cp
或者,您可以使用:
aws s3 cp s3://spaces/dir1/ . --recursive --exclude "*/*"
按照这些思路考虑 aws bucket/key 结构
myBucket/dir1/file1
myBucket/dir1/file2
myBucket/dir1/dir2/dir2file1
myBucket/dir1/dir2/dir2file2
使用时:
aws s3 cp --recursive s3://myBucket/dir1/ .
然后我们将dir2file[1,2]
连同file[1,2]
抄下来。如何只复制后面的文件,不复制子目录下的文件?
回复评论:。我对为每个子目录放置一个 --exclude
不感兴趣,所以这不是
您可以使用 --exclude
选项排除路径,例如
aws s3 cp s3://myBucket/dir1/ . --recursive --exclude "dir1/dir2/*"
可以使用 aws cli 帮助找到更多选项和示例
aws s3 cp help
据我了解,您想确保复制当前目录中的文件,但不应复制子目录中的任何内容。我想你可以使用类似的东西。
aws s3 cp s3://myBucket/dir1/ . --recursive --exclude "*/*"
这里我们排除了在 "dir1" 之后有路径分隔符的文件。
使用 aws s3 cp
复制文件时无法控制递归深度。 aws s3 ls
.
因此,如果您不想使用 --exclude
或 --include
选项,我建议您:
- 使用不带
--recursive
选项的aws s3 ls
命令直接列出目录下的文件,仅从输出中提取文件名并将名称保存到文件中。参考这个 - 然后编写一个简单的脚本来读取文件名并为每个执行
aws s3 cp
或者,您可以使用:
aws s3 cp s3://spaces/dir1/ . --recursive --exclude "*/*"