如何将dist目录文件上传至S3指定路径且不保留dist前缀
问题根源
你当前执行的命令以当前工作目录作为同步根路径,匹配到的dist/*文件的相对路径会被完整保留到S3目标路径中,因此最终生成了a-site-root/dist/xxx的多余层级结构。
解决方案
方案1:直接指定dist为同步源路径(最推荐)
直接修改命令的源路径为dist目录本身,无需额外过滤规则,同步时会自动以dist目录内部作为根路径映射到S3目标路径:aws s3 cp ./dist/ s3://my-static-sites/a-site-root --recursive
执行后dist目录下的index.html会直接上传为a-site-root/index.html,dist内的子目录结构也会完整保留到目标根路径下。
方案2:需保留当前目录作为源路径的场景
如果流水线逻辑需要在当前目录下做多规则过滤、不能直接指定dist为源,可以结合shell命令裁剪路径前缀后上传,可完整保留dist内的子目录结构:find dist -type f | sed 's/^dist\///' | xargs -I {} aws s3 cp dist/{} s3://my-static-sites/a-site-root/{}
内容的提问来源于stack exchange,提问作者gingerbreadboy
相关产品推荐
相关产品推荐

