Groovy 如何在文件中硬链接文件

Groovy 如何在文件中硬链接文件,groovy,jenkins-pipeline,jenkins-declarative-pipeline,Groovy,Jenkins Pipeline,Jenkins Declarative Pipeline,我的总体目标是,从S3同步一个文件,然后硬链接它以避免“多拷贝”,并在构建docker容器时节省空间。这是我到目前为止所拥有的 withAWS(region: 'us-east-1') { s3Download( bucket: 'artifacts.mydomain.tld', file: "${env.ORACLE_RPM}", path: "${env.HOME}/${env.ORACLE_RPM}", ) scrip

我的总体目标是,从S3同步一个文件,然后硬链接它以避免“多拷贝”,并在构建docker容器时节省空间。这是我到目前为止所拥有的

withAWS(region: 'us-east-1') {
    s3Download(
        bucket: 'artifacts.mydomain.tld',
        file: "${env.ORACLE_RPM}",
        path: "${env.HOME}/${env.ORACLE_RPM}",
    )
    script {
        linkBlocking("etc/docker/${env.PROJECT}/${env.ORACLE_RPM}", "${env.HOME}/${env.ORACLE_RPM}")
    }
}
s3Download
可以正常工作,不过我不确定如果有新版本,它是否会更新文件


然而,当我尝试使用该类时,我实际上无法找到正确的调用约定,至少构造函数似乎文档不足。

还没有找到在groovy中如何做到这一点,我在尝试使用Java的nio
文件时遇到了一个沙箱错误,但使用shell步骤可以做到这一点

           withAWS(region: 'us-east-1') {
                script {
                    try {
                        s3Download(
                            bucket: 'artifacts.mydomain.tld',
                            file: "${env.HOME}/${env.ORACLE_RPM}",
                            path: "${env.ORACLE_RPM}",
                        )
                    }
                    catch (Exception e ) {// don't update the file if it exists
                    }
                    finally {
                        sh "ln -f ${env.HOME}/${env.ORACLE_RPM} etc/docker/${env.PROJECT}/${env.ORACLE_RPM}"
                    }
                }

            }

什么是
linkBlocking()
?@StephenKing我在最初的帖子中链接了文件系统类,它在那个类中啊,我明白了。。这是该类中的一个函数。