测试中遇到想通过Jenkins下载OSS桶上的文件,要先在linux上安装ossutil工具,记录安装过程如下:
一、下载安装ossutil,使用命令
1.下载:wget https://gosspublic.alicdn.com/ossutil/1.7.13/ossutil64
2.一定要赋权限:chmod 755 ossutil64,不然会提示权限不足
3.配置文件: ./ossutil64 config
输入accessKeyID、accessKeySecret、endpoint,stsToken我置为空
二、判断是否安装成功
输入:./ossutil64 返回所有命令表示安装成功
命令:
//上传文件
./ossutil64 cp 上传文件名 oss://路径
下载文件
./ossutil64 cp oss://路径 下载路径
三、在Jenkins中使用shell脚本下载文件
#!/bin/bash
# 阿里云ossutil工具路径
ossutil_path="/var/jenkins_home/ossutil64"
# OSS桶的地址
oss_bucket="oss://lattebank-bettercds-sit"
# 文件在OSS桶中的路径
oss_file_path="product/huanbeiandroid/sit/huanbeiandroid-sit-10417-5.29.0-202401171819-sec-resigned.apk"
# Jenkins的工作空间目录
local_dir="$WORKSPACE/build"
# 使用ossutil工具从OSS桶下载文件
$ossutil_path -c /var/jenkins_home/.ossutilconfig cp "$oss_bucket/$oss_file_path" "$local_dir"
# 检查是否下载成功
if [ $? -eq 0 ]; then
echo "File downloaded successfully."
else
echo "Failed to download file."
exit 1
fi
四、遇到的问题:
在linux服务器上ossutil下载命令可以正常使用,但是通过Jenkins调用的时候就报错了,原因是通过docker部署的Jenkins,在/var/jenkins_home中运行Jenkins,shell脚本找ossutil文件肯定是找不到的,需要copy ossutil64和.ossutilconfig到/var/jenkins_home的源目录:/root/jks_home中
查看启动的容器:docker ps -a
查看Jenkins 挂载信息:docker inspect XXX