使用不带文件夹路径的 cli 上传到 aws s3



我想在 aws s3 上上传一个位于类似main/part1/part2/file.txtfile.txt的地方,其中part1part2是未知的(这些文件夹总是变化(。 我可以使用命令aws s3 cp ./main s3://mybucket --exclude "*" --include "*.txt" --recursive做到这一点,但是在我的存储桶中,我将文件位于part1/part2/file.txt.我希望file.txt在桶的底部,而不是在part1/part2里面

鉴于part1part2在不断变化,这可能吗?

for dir1 in $(ls main); do
for dir2 in $(ls main/$dir1); do
aws s3 cp ./main/$dir1/$dir2/ s3://my-bucket --exclude "*" --include "*.txt" --recursive
done
done
upload: main/part1/part2/file.txt to s3://my-bucket/file.txt
upload: main/part11/part22/file2.txt to s3://my-bucket/file2.txt

如果main一次永远不会包含超过1个子目录(part1(,并且该子目录一次永远不会包含超过1个子目录(part2(,则以下内容将起作用:

aws s3 cp ./main/*/*/ s3://my-bucket --exclude "*" --include "*.txt" --recursive
upload: main/part1/part2/file.txt to s3://my-bucket/file.txt

最新更新