Advertisement
Guest User

Untitled

a guest
Oct 5th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.04 KB | None | 0 0
  1.  
  2.  
  3. #!/usr/bin/env bash
  4.  
  5.  
  6. getStringValue(){
  7. local JSON_FILE=$1
  8. local KEY=$2
  9. # echo "KEY $JSON_FILE $KEY"
  10. cat $JSON_FILE | egrep "$KEY" | egrep -o '\"([^"]|\\\")+\"$' | sed 's/^\"//' | sed 's/\"$//'
  11. }
  12.  
  13. getIntegerValue(){
  14. local JSON_FILE=$1
  15. local KEY=$2
  16. # echo "KEY $JSON_FILE $KEY"
  17. cat $JSON_FILE | egrep "$KEY" | egrep -o '[0-9]+$'
  18. }
  19.  
  20.  
  21.  
  22.  
  23. echo "Queue owner section start"
  24.  
  25. if [ -z $1 ] || [ -z $2 ] || [ -z $3 ] ; then
  26. echo "converter need 3 attr WEB_SERVER_CONV_API_URL TOKEN PRIVATE_TOKEN."
  27. exit
  28. fi
  29.  
  30. DATA_FILE=$(mktemp -t data_temp.XXXXXX)
  31. ERROR_FILE=$(mktemp -t data_temp.XXXXXX)
  32. FTP_LOG=$(mktemp -t data_temp.XXXXXX)
  33. #ITEM_LOG=$(mktemp -t data_temp.XXXXXX)
  34.  
  35. FTP_GET_TOOL="ftp -o "
  36.  
  37. type -P wget &>/dev/null >/dev/null 2>/dev/null && HTTP_GET_TOOL="wget -O -" && FTP_GET_TOOL="wget -O "
  38. type -P wget &>/dev/null >/dev/null 2>/dev/null && FTP_GET_TOOL="wget -O "
  39. type -P fetch &>/dev/null >/dev/null 2>/dev/null && HTTP_GET_TOOL="fetch -o - "
  40. type -P curl &>/dev/null >/dev/null 2>/dev/null && HTTP_GET_TOOL="curl "
  41.  
  42.  
  43. WEB_SERVER_CONV_API_URL="$1"
  44. TOKEN="$2"
  45. PRIVATE_TOKEN="$3"
  46.  
  47. echo "send request $WEB_SERVER_CONV_API_URL/getConfig/token/$TOKEN "
  48. OUT=$($HTTP_GET_TOOL "$WEB_SERVER_CONV_API_URL/getConfig/token/$TOKEN" )
  49. # get exit code
  50.  
  51. RET=$?
  52. if [[ $RET -ne 0 ]] ; then
  53. echo "ERROR $HTTP_GET_TOOL $RET"
  54. exit
  55. fi
  56.  
  57. echo "data $OUT"
  58.  
  59. # парсинг данных
  60. echo "$OUT" | ./scripts/JSON.sh/JSON.sh -b 1> $DATA_FILE 2> $ERROR_FILE
  61.  
  62. # проверка ошибки парсинга
  63. ERROR=$(< $ERROR_FILE)
  64. if [[ "$ERROR" != "" ]] ; then
  65. echo "Error parsing $ERROR"
  66. exit
  67. fi
  68.  
  69. #configs paths
  70. PATH_BASE=$(getStringValue $DATA_FILE '\["tmp_path"\]')
  71. PATH_BASE_SOURCE=$PATH_BASE/source
  72. PATH_BASE_CONV=$PATH_BASE/conv
  73. PATH_BASE_PREVIEW=$PATH_BASE/preview
  74.  
  75. URL_BASE_SOURCE_URL=$(getStringValue $DATA_FILE '\["source_url"\]')
  76. FTP_SERVER=$(getStringValue $DATA_FILE '\["conv_ftp_server"\]')
  77. FTP_PATH=$(getStringValue $DATA_FILE '\["conv_ftp_path"\]')
  78. FTP_USER=$(getStringValue $DATA_FILE '\["conv_ftp_user"\]')
  79. FTP_PASSWORD=$(getStringValue $DATA_FILE '\["conv_ftp_password"\]')
  80.  
  81. RESERVE_FTP_SERVER=$(getStringValue $DATA_FILE '\["reserve_conv_ftp_server"\]')
  82. RESERVE_FTP_PATH=$(getStringValue $DATA_FILE '\["reserve_conv_ftp_path"\]')
  83. RESERVE_FTP_USER=$(getStringValue $DATA_FILE '\["reserve_conv_ftp_user"\]')
  84. RESERVE_FTP_PASSWORD=$(getStringValue $DATA_FILE '\["reserve_conv_ftp_password"\]')
  85.  
  86. if [ ! -d "$PATH_BASE" ]; then
  87. mkdir -p $PATH_BASE
  88. fi
  89.  
  90. if [ ! -d "$PATH_BASE_SOURCE" ]; then
  91. mkdir -p $PATH_BASE_SOURCE
  92. fi
  93.  
  94. if [ ! -d "$PATH_BASE_CONV" ]; then
  95. mkdir -p $PATH_BASE_CONV
  96. fi
  97.  
  98. if [ ! -d "$PATH_BASE_PREVIEW" ]; then
  99. mkdir -p $PATH_BASE_PREVIEW
  100. fi
  101.  
  102. while true
  103. do
  104. # сохраняем
  105.  
  106. echo "send request $WEB_SERVER_CONV_API_URL/gettasks/token/$TOKEN "
  107. OUT=$($HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/gettasks/token/$TOKEN )
  108. # get exit code
  109.  
  110. RET=$?
  111. if [[ $RET -ne 0 ]] ; then
  112. # if error exit code, print exit code
  113. echo "ERROR $HTTP_GET_TOOL $RET"
  114. sleep 60
  115. continue
  116. fi
  117.  
  118.  
  119. echo "data $OUT"
  120.  
  121. # парсинг данных
  122. echo "$OUT" | ./scripts/JSON.sh/JSON.sh -b 1> $DATA_FILE 2> $ERROR_FILE
  123.  
  124. # проверка ошибки парсинга
  125. ERROR=$(< $ERROR_FILE)
  126. if [[ "$ERROR" != "" ]] ; then
  127. echo "Error parsing $ERROR"
  128. echo "output:"
  129. echo " $OUT"
  130. sleep 60
  131. continue
  132. fi
  133.  
  134.  
  135. STATUS=$(getStringValue $DATA_FILE '\["status"\]')
  136.  
  137. echo "Status $STATUS"
  138. if [ "$STATUS" != "success" ]; then
  139. sleep 30
  140. continue
  141. fi
  142.  
  143. LENGTH=$(getIntegerValue $DATA_FILE '\["data","length"\]')
  144.  
  145. if [ "$LENGTH" == 0 ]; then
  146. sleep 60
  147. continue
  148. fi
  149.  
  150. # Close STDOUT file descriptor
  151. #exec 1<&-
  152. # Close STDERR FD
  153. #exec 2<&-
  154.  
  155. # Open STDOUT as $LOG_FILE file for read and write.
  156. #exec 1<>$ITEM_LOG
  157.  
  158. # Redirect STDERR to STDOUT
  159. #exec 2>&1
  160.  
  161.  
  162. echo "Length $LENGTH"
  163.  
  164.  
  165. echo "Removing local conv files version"
  166. find "$PATH_BASE_CONV" -type f -delete
  167. echo "Removing local source files version"
  168. find "$PATH_BASE_SOURCE" -type f -delete
  169. echo "Removing local preview files version"
  170. find "$PATH_BASE_PREVIEW" -type f -delete
  171.  
  172. DURATION=0
  173. FILEPNG=0
  174. FILENAME_SET=0
  175. MIDPOINTS=()
  176. FRAGMENTS=()
  177.  
  178.  
  179. file=$(getStringValue $DATA_FILE "\[\"data\",\"items\",0,\"file\"\]")
  180. file_name=$(getStringValue $DATA_FILE "\[\"data\",\"items\",0,\"file_name\"\]")
  181. picture_name_on_disk=$(getStringValue $DATA_FILE "\[\"data\",\"items\",0,\"picture_name_on_disk\"\]")
  182. video_id=$(getIntegerValue $DATA_FILE "\[\"data\",\"items\",0,\"video_id\"\]")
  183. user_id=$(getIntegerValue $DATA_FILE "\[\"data\",\"items\",0,\"user_id\"\]")
  184. queue_id=$(getIntegerValue $DATA_FILE "\[\"data\",\"items\",0,\"id\"\]")
  185.  
  186.  
  187. if ! [ -f "$PATH_BASE_SOURCE/$file" ];
  188. then
  189. # скачать если сервер
  190. $FTP_GET_TOOL $PATH_BASE_SOURCE/$file $URL_BASE_SOURCE_URL/$file
  191. fi
  192.  
  193. if ! [ -f "$PATH_BASE_SOURCE/$file" ]; then
  194. echo "No file to encode: $PATH_BASE_SOURCE/$file"
  195. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setstate/id/$queue_id/token/$TOKEN/state/error/errno/2/?error=ERROR_DOWNLOAD_SOURCE
  196. else
  197. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setstate/id/$queue_id/token/$TOKEN/state/downloaded
  198.  
  199. #если переданы параметры фрагментации видео
  200. fragmentLENGTH=$(getIntegerValue $DATA_FILE "\[\"data\",\"items\",0,\"fragmentation\",\"length\"\]")
  201.  
  202. if (( $fragmentLENGTH > 0 )); then
  203. echo "Start fragmentation"
  204. CONCAT_STRING=""
  205. #переменная сдвига мидпоинтов после обрезки роликов
  206. MIDPOINTS_STEPS=0
  207.  
  208. for fragmentINDEX in `seq 0 $(($fragmentLENGTH-1))`;
  209. do
  210. FRAGMENT_START=$(getStringValue $DATA_FILE "\[\"data\",\"items\",0,\"fragmentation\",\"fragments\",$fragmentINDEX,\"start\"\]")
  211. FRAGMENT_LENGTH=$(getStringValue $DATA_FILE "\[\"data\",\"items\",0,\"fragmentation\",\"fragments\",$fragmentINDEX,\"length\"\]")
  212. if [ "$FRAGMENT_LENGTH" > 0 ]; then
  213.  
  214. echo "Start crop[$FRAGMENT_START:$FRAGMENT_LENGTH]"
  215. fragment_filename="part$fragmentINDEX.ts"
  216. #AVCONV_STR="$PATH_BASE_SOURCE/$file -ss $FRAGMENT_START -t $FRAGMENT_LENGTH -vcodec libx264 -acodec aac -bsf:v h264_mp4toannexb -f mpegts -strict experimental -y -threads auto $PATH_BASE_SOURCE/$fragment_filename"
  217.  
  218. AVCONV_STR=""
  219. AVCONV_STR=$( cat <<EOF
  220. -ss $FRAGMENT_START \
  221. -t $FRAGMENT_LENGTH \
  222. -vcodec libx264 -acodec aac -bsf:v h264_mp4toannexb \
  223. -f mpegts -strict experimental -y -threads auto \
  224. $PATH_BASE_SOURCE/$fragment_filename
  225. EOF
  226. )
  227.  
  228. avconv -i "$PATH_BASE_SOURCE/$file" $AVCONV_STR
  229.  
  230. echo "End crop[$FRAGMENT_START:$FRAGMENT_LENGTH]"
  231.  
  232. if [ -f "$PATH_BASE_SOURCE/$fragment_filename" ]; then
  233. MIDPOINTS=("${MIDPOINTS[@]}" "$MIDPOINTS_STEPS")
  234. #сдвигаем мидпоинт на длину фрагмента
  235. MIDPOINTS_STEPS="$(echo "$MIDPOINTS_STEPS+$FRAGMENT_LENGTH" | bc)"
  236. FRAGMENTS=("${FRAGMENTS[@]}" "$PATH_BASE_SOURCE/$fragment_filename")
  237.  
  238. if (( "$fragmentINDEX" > 0 )); then
  239. CONCAT_STRING="$CONCAT_STRING|$PATH_BASE_SOURCE/$fragment_filename"
  240. else
  241. CONCAT_STRING="$PATH_BASE_SOURCE/$fragment_filename"
  242. fi
  243. fi
  244. fi
  245. done
  246.  
  247. #MIDPOINTS_STRING=$(IFS=,; echo "${MIDPOINTS[*]}")
  248. SPLIT_FILENAME="split.mp4"
  249.  
  250. #Если созданы фрагменты
  251. if (( ${#FRAGMENTS[@]} > 0 )); then
  252. FRAGMENTS_JOIN=$(IFS='|'; echo "${FRAGMENTS[*]}")
  253. echo "Split fragments: $FRAGMENTS_JOIN"
  254. COMMAND_SPLIT=$( cat <<EOF
  255. -c copy \
  256. -bsf:a aac_adtstoasc \
  257. -y $PATH_BASE_SOURCE/$SPLIT_FILENAME
  258. EOF
  259. )
  260.  
  261. avconv -i "concat:$FRAGMENTS_JOIN" $COMMAND_SPLIT
  262.  
  263. #проверка, что новый файл собран
  264. if [ -f "$PATH_BASE_SOURCE/$SPLIT_FILENAME" ]; then
  265. file="$SPLIT_FILENAME"
  266. fi
  267. #отправляем новые midpoints
  268. if (( ${#MIDPOINTS[@]} > 0)); then
  269. MIDPOINTS_CONCAT=$(IFS='|'; echo "${MIDPOINTS[*]}")
  270. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setmidpoints/video_id/$video_id/token/$TOKEN/?midpoints=$MIDPOINTS_CONCAT
  271. fi
  272.  
  273. fi
  274.  
  275. fi
  276.  
  277. echo "Start encode. $file "
  278.  
  279. AVPROBE_STR=$( avprobe -v 0 -of ini -show_format -show_streams "$PATH_BASE_SOURCE/$file" )
  280.  
  281. if ! echo "$AVPROBE_STR" | grep -q "width" ; then
  282. echo "$AVPROBE_STR"
  283. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setstate/id/$queue_id/token/$TOKEN/state/error/errno/3/?error=ERROR_AVPROBE_ENCODE
  284. continue
  285. fi
  286.  
  287. if echo "$AVPROBE_STR" | grep -q "duration" ; then
  288. if [ $DURATION == "0" ]
  289. then
  290. DURATION=$(echo "$AVPROBE_STR" | grep -m 1 "duration" | sed -n 's/duration=\([0-9]*\).*/\1/p')
  291. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setduration/video_id/$video_id/token/$TOKEN/duration/$DURATION
  292. fi
  293.  
  294. if [ -z "$picture_name_on_disk" ] && [ $FILEPNG == "0" ]
  295. then
  296.  
  297. FILEPNG=$(basename $file).jpeg
  298. FILEPNG2=$(basename $file)_2.jpeg
  299. FILEPNG3=$(basename $file)_3.jpeg
  300. FILEPNG4=$(basename $file)_4.jpeg
  301. FILEPNG5=$(basename $file)_5.jpeg
  302.  
  303. avconv -noaccurate_seek -ss $(( (DURATION * 25) / 100 )) -i "$PATH_BASE_SOURCE/$file" -f image2 -vframes 1 $PATH_BASE_PREVIEW/$FILEPNG
  304.  
  305. if ! [ -f "$PATH_BASE_PREVIEW/$FILEPNG" ]; then
  306. avconv -noaccurate_seek -ss $(( (DURATION * 10) / 100 )) -i "$PATH_BASE_SOURCE/$file" -f image2 -vframes 1 $PATH_BASE_PREVIEW/$FILEPNG
  307. fi
  308. #A/B TEST допилка by ashmits 11.02.2015
  309. #avconv -noaccurate_seek -ss $(( (DURATION * 11) / 100 )) -i "$PATH_BASE_SOURCE/$file" -f image2 -vframes 1 $PATH_BASE_PREVIEW/$FILEPNG2
  310. #avconv -noaccurate_seek -ss $(( (DURATION * 12) / 100 )) -i "$PATH_BASE_SOURCE/$file" -f image2 -vframes 1 $PATH_BASE_PREVIEW/$FILEPNG3
  311. #avconv -noaccurate_seek -ss $(( (DURATION * 13) / 100 )) -i "$PATH_BASE_SOURCE/$file" -f image2 -vframes 1 $PATH_BASE_PREVIEW/$FILEPNG4
  312. #avconv -noaccurate_seek -ss $(( (DURATION * 14) / 100 )) -i "$PATH_BASE_SOURCE/$file" -f image2 -vframes 1 $PATH_BASE_PREVIEW/$FILEPNG5
  313.  
  314. #curl -F "file[]=@$PATH_BASE_PREVIEW/$FILEPNG" -F "file[]=@$PATH_BASE_PREVIEW/$FILEPNG2" -F "file[]=@$PATH_BASE_PREVIEW/$FILEPNG3" -F "file[]=@$PATH_BASE_PREVIEW/$FILEPNG4" -F "file[]=@$PATH_BASE_PREVIEW/$FILEPNG5" $WEB_SERVER_CONV_API_URL/setVideoPriview/token/$TOKEN/uploader_id/file/video_id/$video_id
  315. curl -F "file=@$PATH_BASE_PREVIEW/$FILEPNG" $WEB_SERVER_CONV_API_URL/setVideoPriview/token/$TOKEN/uploader_id/file/video_id/$video_id
  316.  
  317. echo "file : $file"
  318. echo "VIDEO_ID : $video_id"
  319. fi
  320. fi
  321. fi
  322.  
  323. AVCONV_STR=""
  324.  
  325. for INDEX in `seq 0 $(($LENGTH-1))`;
  326. do
  327. echo "index = $INDEX"
  328. queue_id=$(getIntegerValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"id\"\]")
  329. vcodec=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"vcodec\"\]")
  330. acodec=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"acodec\"\]")
  331. width=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"width\"\]")
  332. height=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"height\"\]")
  333. format=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"format\"\]")
  334. vbitrate=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"vbitrate\"\]")
  335. abitrate=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"abitrate\"\]")
  336. crf=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"crf\"\]")
  337. maxrate=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"maxrate\"\]")
  338. bufsize=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"bufsize\"\]")
  339. ac=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"ac\"\]")
  340. freq=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"freq\"\]")
  341. fps=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"fps\"\]")
  342. ext=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"ext\"\]")
  343. vpreset=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"vpreset\"\]")
  344. custom_args_str=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"custom_args_str\"\]")
  345. FILENAME=${file_name}_${height}p.${ext}
  346.  
  347. AVCONV_STR=$( cat <<EOF
  348. -vcodec libx264 $custom_args_str -preset:v $vpreset -threads auto \
  349. -filter:v scale=w=trunc((iw*min($height\,ih)/ih)/2)*2:h=trunc(min($height\,ih)/2)*2 \
  350. -maxrate $maxrate -bufsize:v $bufsize -r $fps -crf $crf \
  351. -acodec libfdk_aac -ab $abitrate -ac $ac \
  352. $PATH_BASE_CONV/$FILENAME \
  353. $AVCONV_STR
  354. EOF
  355. )
  356. done
  357.  
  358. avconv -i "$PATH_BASE_SOURCE/$file" \
  359. $AVCONV_STR
  360.  
  361. echo $AVCONV_STR
  362.  
  363. echo "Done encode"
  364.  
  365. for INDEX in `seq 0 $(($LENGTH-1))`;
  366. do
  367. echo "index = $INDEX"
  368.  
  369. queue_id=$(getIntegerValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"id\"\]")
  370. video_id=$(getIntegerValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"video_id\"\]")
  371. user_id=$(getIntegerValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"user_id\"\]")
  372. vcodec=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"vcodec\"\]")
  373. acodec=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"acodec\"\]")
  374. width=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"width\"\]")
  375. height=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"height\"\]")
  376. format=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"format\"\]")
  377. vbitrate=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"vbitrate\"\]")
  378. abitrate=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"abitrate\"\]")
  379. ac=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"ac\"\]")
  380. freq=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"freq\"\]")
  381. fps=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"fps\"\]")
  382. ext=$(getStringValue $DATA_FILE "\[\"data\",\"items\",$INDEX,\"ext\"\]")
  383. FILENAME=${file_name}_${height}p.${ext}
  384.  
  385.  
  386. if ! [ -f "$PATH_BASE_CONV/$FILENAME" ]; then
  387. echo "file not encoded: $PATH_BASE_SOURCE/$file"
  388. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setstate/id/$queue_id/token/$TOKEN/state/error/errno/4/?error=ERROR_WHILE_ENCODE
  389. sleep 10
  390. continue
  391. else
  392. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setstate/id/$queue_id/token/$TOKEN/state/converted/?filename=$FILENAME
  393. fi
  394.  
  395. # fix permision
  396. chmod 755 "$PATH_BASE_CONV/$FILENAME"
  397. FTP_FILE_PATH="$FTP_PATH/$user_id"
  398.  
  399. echo "Uploading to FTP"
  400. ftp -inv $FTP_SERVER >$FTP_LOG <<END_FTP
  401. quote USER $FTP_USER
  402. quote PASS $FTP_PASSWORD
  403. passive mode on
  404. binary
  405. mkdir "$FTP_FILE_PATH"
  406. put "$PATH_BASE_CONV/$FILENAME" "$FTP_FILE_PATH/$FILENAME"
  407. quit
  408. END_FTP
  409.  
  410. FTP_SUCCESS_MSG="226" # 226 Закрытие канала, обмен завершен успешно
  411. if fgrep "$FTP_SUCCESS_MSG" $FTP_LOG ;then
  412. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setstate/id/$queue_id/token/$TOKEN/state/uploaded
  413. echo "ftp OK"
  414. else
  415. echo "ftp Error:"
  416. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setstate/id/$queue_id/token/$TOKEN/state/error/errno/5?error=CDN_ERROR
  417. cat $FTP_LOG
  418. continue
  419. fi
  420. if [ $RESERVE_FTP_SERVER != "off" ] ;then
  421. RESERVE_FTP_FILE_PATH="$RESERVE_FTP_PATH/$user_id"
  422.  
  423. echo "Uploading to reserve FTP"
  424. ftp -inv $RESERVE_FTP_SERVER >$FTP_LOG <<END_FTP
  425. quote USER $RESERVE_FTP_USER
  426. quote PASS $RESERVE_FTP_PASSWORD
  427. passive mode on
  428. binary
  429. mkdir "$RESERVE_FTP_FILE_PATH"
  430. put "$PATH_BASE_CONV/$FILENAME" "$RESERVE_FTP_FILE_PATH/$FILENAME"
  431. quit
  432. END_FTP
  433.  
  434. FTP_SUCCESS_MSG="226" # 226 Закрытие канала, обмен завершен успешно
  435. if fgrep "$FTP_SUCCESS_MSG" $FTP_LOG ;then
  436. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setstate/id/$queue_id/token/$TOKEN/state/uploaded
  437. echo "reserve ftp OK"
  438. else
  439. echo "reserve ftp Error:"
  440. $HTTP_GET_TOOL $WEB_SERVER_CONV_API_URL/setstate/id/$queue_id/token/$TOKEN/state/error/errno/5?error=CDN_ERROR
  441. cat $FTP_LOG
  442. continue
  443. fi
  444. fi
  445. done
  446. sleep 5
  447. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement