这是我正在使用的命令:
curl --insecure -i https://XX.XXX.XXX.XX/project/conatinername/foldertobeuploaded/${file}.html -X PUT -H "Content-Type: text/html charset=UTF-8; -H "Content-Length:0" -H "X-Auth-Token: $token" -T /home/folder/${file}.html
我想将整个目录上传到我托管的对象服务。另外,我想提供一个 switch case,它可以帮助我根据内容类型上传每个文件。
这是 sh 文件
for file in /home/folder/*
if [ ${extension} == "html" ];
do
curl --insecure https://10.147.202.80:8081/swift/v1/JFSTechBackup/${file} -X PUT -H "Content-Type: text/html charset=UTF-8; -H "Content-Length:0" -H "X-Auth-Token: $token" -T /home/folder/${file}
elif [ ${extension} == "css" ]; then
do
curl --insecure https:/home/folder/${file} -X PUT -H "Content-Type: text/css -H "X-Auth-Token: $token" -T /home/folder/${file}
else if [ ${extension} == "png" ]; then
do
curl --insecure https:/home/folder/${file} -X PUT -H "Content-Type: image/png -H "X-Auth-Token: $token" -T /home/folder/${file}
fi
答案1
我不会尝试重写你的脚本,而是以递归方式查找所有可以使用的文件find
,例如查找所有常规文件
find directory -type f
或者查找所有非目录的内容
find directory \! -type d
然后,您可以对每个项目运行一些命令,xargs
这会很棒(这里使用空分隔的名称)
find directory \! -type d -print0 | xargs -0 curl ...
如果您希望文件扩展名检查和处理,那么您可以find
对每种-name *.extension
类型使用单独的扩展名,或者使用类似 while read 循环的方法
find directory \! -type d | while read onthisfile; do echo Processing "$onthisfile; done