0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ssh経由で、画像データなどのバイナリをサーバーに送る

Last updated at Posted at 2021-03-24

sshからウェブコンテンツなどを編集しているとき、ちょっとした画像をサーバー上に送りたいときがある。もうひとつコンソールを開いてそこからscpしたり、転送用のアプリケーションを起動したりしてもよいが、おっくうだ。数台のサーバーを踏み台にして目的のサーバー上で作業しているときなどは、特にそう。ポートフォワードを使った転送はもちろん知っているけど、やりかたを思い出したりメモを探ったりする手間がかかってしまい、ストレスだ。

というわけで、まず手元に下のようなpython3スクリプトを準備する。ファイル名は、仮に b64ify.py とした。環境はwindows。

b64ify.py
# !py -3
import sys
import base64
fname = sys.argv[1]
c = open(fname, mode='rb').read()
print(base64.encodebytes(c).decode())
input()

このスクリプトのアイコンの上に、送りたい画像ファイルをドラッグ&ドロップする。
image.png

するとBASE64エンコードされたものが表示されるので、これをクリップボード上にコピー。(pythonスクリプトをもうちょっといじって、クリップボードへの転送を勝手にやるようにしてもいいかもね。)

サーバーの上では、

$ base64 -d > image.jpg

とコマンドをたたいて、それに続き、今のBASE64データをコンソール上にペーストする。ペーストが終わったら [ctrl]+[D]。これで、サーバー上には、BASE64状態から復元されたデータが格納されているというわけ。

あくまで数KBのファイルを送るときしか実用的でないと思うけど、どうでしょう。面倒具合はそんなに変わらないかな。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?