Bash言語でリモートサーバーにファイルをコピーして共有のためのURLを取得するプログラムについて紹介します。
ローカルファイルをリモートサーバーにコピーしたのち、クリップボードにそのURLをコピーします。テキストファイルやメディアファイルを手早く共有したい場合に便利。
サーバー名は僕の環境のエックスサーバーのものになっていますので、そこらへんは適当に変えてください。
# リモート;remoteにファイルをコピーして共有のためのURLを取得 e.g. images,videos,files,etc
sharefile(){
: e.g. sharefile "/mnt/e/_downloads/MOV_0070.mp4"
# filepath="/mnt/e/_downloads/MOV_0070.mp4"
filepath=$(realpath "$1")
cp "${filepath}" "${filepath}.tmp"
filedir=$(dirname "$filepath")
filename=$(basename -- "$filepath")
extension="${filename##*.}"
random=$(random|chomp)
if [[ $string =~ .*\..* ]]
then
mv "$filepath" "$filedir/${random}"
newFilepath="$filedir/${random}"
newFilename="${random}"
touch "${filedir}/${filename} is ${random}.is.tag"
else
mv "$filepath" "$filedir/${random}.$extension"
newFilepath="$filedir/${random}.$extension"
newFilename="${random}.$extension"
# set -x
touch "${filedir}/${filename} is ${random}.${extension}.is.tag"
# set +x
fi
rsync -e 'ssh -p 10022 -i ~/.ssh/yuis.key' -r "${newFilepath}" yuis@sv2031.xserver.jp:"~/yuis.xsrv.jp/public_html/data/"
mv "${filepath}.tmp" "${filepath}"
echo "https://yuis.xsrv.jp/data/${newFilename}" | clip && printf "\n\n${blu}https://yuis.xsrv.jp/data/${newFilename}${end} is clipped.\n\n"
}