我们可以使用Jenkins文件中的s3Upload
将多个文件(不是整个文件夹)上传到S3吗?在Jenkins管道中使用s3upload上传多个文件
我试图使用s3Upload
函数将根目录中的所有rpm文件(*.rpm
)上载到S3。
我们可以使用Jenkins文件中的s3Upload
将多个文件(不是整个文件夹)上传到S3吗?在Jenkins管道中使用s3upload上传多个文件
我试图使用s3Upload
函数将根目录中的所有rpm文件(*.rpm
)上载到S3。
findFiles解决了这个问题。下面是用于相同的片段。
files = findFiles(glob: '*.rpm')
files.each {
println "RPM: ${it}"
withAWS(credentials: '****************'){
s3Upload(file:"${it}", bucket:'rpm-repo', path:"${bucket_path}")
}
}
请参阅以下链接AWS s3 documentation。其中,请参考'使用排除和包含过滤器'
以下是上传多个特定类型文件的方法。
如果您只想上传具有特定扩展名的文件,则需要先排除所有文件,然后重新包含具有特定扩展名的文件。此命令将仅上传以.jpg结尾的文件:
aws s3 cp /tmp/foo/ s3://bucket/ --recursive --exclude "*" --include "*.jpg"
这适用于AWS命令行界面。
此答案针对'aws' CLI。我假设OP代表Pipeline AWS Plugin的步骤。 – StephenKing
@StephenKing是对的。 s3Upload用于Jenkins管道步骤 – rashidcmb
根据[link]上的官方文档(https://jenkins.io/doc/pipeline/steps/pipeline-aws/),s3Upload支持上传单个文件或上传整个目录(包括所有子文件夹)。所以我试图给这个替代解决方案。 –
And ..??发生了什么? – StephenKing
IIRC's3upload'只支持单个文件或目录。因此,使用'findFiles('* .rpm')'遍历它们并为每个文件调用's3Upload',或上传完整的目录。 – StephenKing
让我试试这个吧.. – rashidcmb