プログラミング

Bash リモートサーバーにファイルをコピーして共有のためのURLを取得する

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"

}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です