Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
S3使用Jenkins管道复制工件_Jenkins_Amazon S3_Jenkins Plugins - Fatal编程技术网

S3使用Jenkins管道复制工件

S3使用Jenkins管道复制工件,jenkins,amazon-s3,jenkins-plugins,Jenkins,Amazon S3,Jenkins Plugins,我正在尝试在Jenkins 2.0管道中与Jenkins文件一起使用。不幸的是,管道语法帮助器似乎不是很完整 我得到了以下代码: step([$class: 'S3CopyArtifact', buildSelector: [$class: 'StatusBuildSelector', stable: true], excludeFilter: '', filter: 'deploy/*.zip', flatten: false, optional: false, projectName: 'm

我正在尝试在Jenkins 2.0管道中与Jenkins文件一起使用。不幸的是,管道语法帮助器似乎不是很完整

我得到了以下代码:

step([$class: 'S3CopyArtifact', buildSelector: [$class: 'StatusBuildSelector', stable: true], excludeFilter: '', filter: 'deploy/*.zip', flatten: false, optional: false, projectName: 'my/project/with/folders', target: '/my/directory/'])
当然,这还不够,因为凭证和存储桶丢失。此外,此插件与文件夹插件的行为似乎不正确


有人对此有任何提示吗?

我同意你最初的说法,即脚本生成是非常悲伤的。即使您选择了
S3BucketPublisher
,它也无法继续。 请参阅下面我的代码片段。它假定您已经在系统配置中创建了配置文件

stage("publish to s3") {
    step([
        $class: 'S3BucketPublisher',
        entries: [[
            sourceFile: 'mybinaryFile',
            bucket: 'GoBinaries',
            selectedRegion: 'eu-west-1',
            noUploadOnFailure: true,
            managedArtifacts: true,
            flatten: true,
            showDirectlyInBrowser: true,
            keepForever: true,
        ]],
        profileName: 'myprofile',
        dontWaitForConcurrentBuildCompletion: false, 
    ])
}

对于更简单的用例,现在支持如下所示:
s3Upload(文件:'someFolder',bucket:'my-bucket',路径:'/path/to/targetFolder/')

djsd123的示例非常适用于更高级的用例。 如果还要向对象添加元数据标记,可以添加userMetaData数组:

    profileName: 'myprofile',
    dontWaitForConcurrentBuildCompletion: false, 
    userMetadata: [[ key: 'git_branch', value: "${env.BRANCH_NAME}"],
                   [ key: 'build_number', value: "${env.BUILD_NUMBER}"]
    ],

添加@djsd123 answer后,您可以使用glob模式上载文件夹:

                    ...
                    bucket: "bucketName/folder",
                    sourceFile: 'folder/**',
                    ...

实际上,管道语法帮助程序已经完成,但我有bot S3CopyArtifact和S3BucketPublisher。要使用的是S3BucketPublisher!是否可以用同样的方法上传整个文件夹?我正在尝试做同样的事情,但仍然有错误。我会留着你的posted@djsd123可以用同样的方式上传字符串吗?对不起,@MadhuAvinash,我不知道上传字符串是什么意思?通常,可以使用插件上载/发布人工制品。如果你有问题?请发布结果以及您试图实现的目标,我/任何人都会非常乐意提供帮助。请记住,我已经有一段时间没有使用Jenkins了。我想在这个类中捕获异常。如果我只是在“步骤”周围添加一个try&catch块,它不会捕获错误。正确的方法是什么?我使用AWS CLI和
sh
块,但这显然是一种方法,我将逐步切换到这个插件。谢谢