2017-09-06 294 views
0

我们可以使用Jenkins文件中的s3Upload将多个文件(不是整个文件夹)上传到S3吗?在Jenkins管道中使用s3upload上传多个文件

我试图使用s3Upload函数将根目录中的所有rpm文件(*.rpm)上载到S3。

+0

And ..??发生了什么? – StephenKing

+0

IIRC's3upload'只支持单个文件或目录。因此,使用'findFiles('* .rpm')'遍历它们并为每个文件调用's3Upload',或上传完整的目录。 – StephenKing

+0

让我试试这个吧.. – rashidcmb

回答

3

findFiles解决了这个问题。下面是用于相同的片段。

files = findFiles(glob: '*.rpm') 

    files.each { 
     println "RPM: ${it}" 
     withAWS(credentials: '****************'){ 
     s3Upload(file:"${it}", bucket:'rpm-repo', path:"${bucket_path}") 
     } 
    } 
0

请参阅以下链接AWS s3 documentation。其中,请参考'使用排除和包含过滤器'

以下是上传多个特定类型文件的方法。

如果您只想上传具有特定扩展名的文件,则需要先排除所有文件,然后重新包含具有特定扩展名的文件。此命令将仅上传以.jpg结尾的文件:

aws s3 cp /tmp/foo/ s3://bucket/ --recursive --exclude "*" --include "*.jpg" 

这适用于AWS命令行界面。

+0

此答案针对'aws' CLI。我假设OP代表Pipeline AWS Plugin的步骤。 – StephenKing

+0

@StephenKing是对的。 s3Upload用于Jenkins管道步骤 – rashidcmb

+0

根据[link]上的官方文档(https://jenkins.io/doc/pipeline/steps/pipeline-aws/),s3Upload支持上传单个文件或上传整个目录(包括所有子文件夹)。所以我试图给这个替代解决方案。 –