jenkinsfile - 将文件复制到 s3 并制作 public
jenkinsfile - copy files to s3 and make public
我正在将网站上传到 s3 存储桶进行托管,我在 jenkins 文件中使用它从 jenkins 构建作业上传
withAWS(credentials:'aws-cred') {
sh 'npm install'
sh 'ng build --prod'
s3Upload(
file: 'dist/topic-creation',
bucket: 'bucketName',
acl:'PublicRead'
)
}
在这一步之后,我转到 s3 存储桶并获取 URL(我已经为托管配置了存储桶),当我转到端点 url 时,我收到 403 错误。当我返回存储桶并为所有已上传的项目提供 public 访问权限时,URL 会将我带到我的网站。
我不想创建存储桶 public,我想授予文件 public 访问权限,我认为添加上面可以看到的行 acl:'PublicRead'
就可以了这但事实并非如此。
谁能告诉我如何上传文件并从 jenkins 文件授予 public 访问权限?
谢谢
在您的 Jenkins 实例上安装 S3Publisher 插件:https://plugins.jenkins.io/s3/
要将具有 public 访问权限的本地工件上传到您的 S3 存储桶,请使用以下命令(您也可以使用 Jenkins 管道语法):
def identity=awsIdentity();
s3Upload acl: 'PublicRead', bucket: 'NAME_OF_S3_BUCKET', file: 'THE_ARTIFACT_TO_BE_UPLOADED_FROM_JENKINS', path: "PATH_ON_S3_BUCKET", workingDir: '.'
如果是自由式构建,这里有一个示例:
我正在将网站上传到 s3 存储桶进行托管,我在 jenkins 文件中使用它从 jenkins 构建作业上传
withAWS(credentials:'aws-cred') {
sh 'npm install'
sh 'ng build --prod'
s3Upload(
file: 'dist/topic-creation',
bucket: 'bucketName',
acl:'PublicRead'
)
}
在这一步之后,我转到 s3 存储桶并获取 URL(我已经为托管配置了存储桶),当我转到端点 url 时,我收到 403 错误。当我返回存储桶并为所有已上传的项目提供 public 访问权限时,URL 会将我带到我的网站。
我不想创建存储桶 public,我想授予文件 public 访问权限,我认为添加上面可以看到的行 acl:'PublicRead'
就可以了这但事实并非如此。
谁能告诉我如何上传文件并从 jenkins 文件授予 public 访问权限?
谢谢
在您的 Jenkins 实例上安装 S3Publisher 插件:https://plugins.jenkins.io/s3/
要将具有 public 访问权限的本地工件上传到您的 S3 存储桶,请使用以下命令(您也可以使用 Jenkins 管道语法):
def identity=awsIdentity();
s3Upload acl: 'PublicRead', bucket: 'NAME_OF_S3_BUCKET', file: 'THE_ARTIFACT_TO_BE_UPLOADED_FROM_JENKINS', path: "PATH_ON_S3_BUCKET", workingDir: '.'
如果是自由式构建,这里有一个示例: