Jenkins 与 Amazon S3 持续集成 - 一切都上传到根目录?

标签 jenkins amazon-s3 continuous-integration

我正在运行 Jenkins,并且它可以成功地与我的 GitHub 帐户一起使用,但我无法让它与 Amazon S3 一起正常工作。

我安装了 S3 插件,当我运行构建时,它成功上传到我指定的 S3 存储桶,但上传的所有文件最终都位于存储桶的根目录中。我有一堆文件夹(例如/css/js 等),但来自 hithub 的这些文件夹中的所有文件最终都位于我的 S3 帐户的根目录中。

是否可以让S3插件上传并保留文件夹结构?

最佳答案

这看起来不可能。相反,我使用 s3cmd 来执行此操作。您必须首先将其安装在您的服务器上,然后在 Jenkins 作业中的 bash 脚本之一中您可以使用:

s3cmd sync -r -P $WORKSPACE/ s3://YOUR_BUCKET_NAME

这会将所有文件复制到您的 S3 帐户,并保持文件夹结构。 -P 保留每个人的读取权限(如果您将存储桶用作 Web 服务器则需要)。这是使用同步功能的绝佳解决方案,因为它将所有本地文件与 S3 存储桶进行比较,并且仅复制已更改的文件(通过比较文件大小和校验和)。

关于Jenkins 与 Amazon S3 持续集成 - 一切都上传到根目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11535479/

相关文章:

android - 在 Bamboo、Hudson 或任何 CI 服务器中对 Android 应用程序进行单元测试

ios - Visual Studio Team Services ***NO_CI*** 不适用于 Bitbucket 和 Xcode

maven - 具有Maven,Jenkins,Nexus的基础架构

amazon-web-services - 如何在 EC2 上的 docker 内使用 AWS 凭证运行命令?

docker - 如何使用 Jenkins 在远程 docker 主机中运行容器

sql - 是否有将数据从雪花获取到 s3 的最佳方法

amazon-s3 - 使用 com.amazonaws :aws-java-sdk 1. 11.18 出现意外的 v4 签名网址

c++ - Thoughtworks游轮 : Unit Testing?

jenkins - 作业在新的 Jenkins View 中不可见

jenkins - Jenkins Pipeline jenkinsFile 应该成为存储库的一部分吗?