LoginSignup
28
31

More than 5 years have passed since last update.

WinSCPでS3にアップロードするための覚書

Last updated at Posted at 2018-08-14

はじめに

WinSCPがAWS S3に対応したので、WinSCPをS3クライアントとした場合の設定について覚書を書いていく

WinSCPのインストール

以下からパッケージをダウンロードする。
https://ja.osdn.net/projects/winscp/

大抵はWinSCP-5.x.x-Setup.exeでいいと思うが、RPAと連携したりする場合はWinSCP-5.x.x-Automation.zipをインストールすると、WinSCPをCOMオブジェクトとして動かせるようになる、補足として、COM登録は以下のコマンドでできる

%WINDIR%\Microsoft.NET\Framework\<version>\RegAsm.exe WinSCPnet.dll /codebase /tlb

WinSCPのコマンドライン

このあたりは、ヘルプに載っている内容なのでさらっと転記しておきます

winscp.exe <保存したセッション名>
winscp.exe [(sftp|ftp|scp)://][ユーザー名[:パスワード]@]ホスト名[:ポート][/開くパス/[ファイル名]]
winscp.exe [mysession] /synchronize [ローカルディレクトリ] [リモートディレクトリ「] [/defaults]
winscp.exe [mysession] /keepuptodate [ローカルディレクトリ] [リモートディレクトリ] [/defaults]
winscp.exe [mysession] /upload ファイル1 ファイル2 ファイル3 ... [/defaults]
winscp.exe [mysession] [/privatekey=<秘密鍵ファイル>] [/hostkey=<鍵の指紋>]
winscp.exe [mysession] [/passive] [/implicit|explicitssl|explicittls]
winscp.exe [mysession] [/timeout=<行>]
winscp.exe [/console] [/script=スクリプトファイル] [/command コマンド1 コマンド2 ...] [/parameter パラメータ1 ...]
winscp.exe /ini=<iniファイル> /log=<ログファイル>
winscp.exe /update
winscp.exe /help
また、WinSCPにはコンソール機能を呼び出す「winscp.com」という実行ファイルも付属しています。winscp.comの基本的なオプションは下記のとおりです。

winscp.com [/script=スクリプトファイル] [/command コマンド1 コマンド2 ...] [/parameter パラメータ1 ...]
winscp.com /ini=<iniファイル> /log=<ログファイル>
winscp.com /help

WinSCPをS3クライアントとして使うための準備

接続先パケットを用意する、ここでは、説明のため以下の名称のバケットを作ったとする

s3://winscp-file-modify

AWS IAMにて、S3に対して必要な権限を付けた、credentialを発行する
※なおアクセス制限については、S3のポリシーで設定することになるので、留意する。

Access key ID     = AXXXXXXXXXXXXXXA
Secret access key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

WinSCPに接続設定を登録する

image.png

スクリーンショットのように
転送プロトコルAmazon S3 に指定
アクセスキーシークレットキーには、IAMで生成したcredentialの内容を転記する。

image.png

次に、設定(D)... ボタンから 高度なサイトの設定 を開き リモートディレクトリ/(s3バケット名) を指定する

image.png

設定が終わったら、保存ボタンで保存する。セッション名は任意で構わないが、デフォルトはアクセスキー@s3.amazonaws.comになっている(ここでは次の説明でも使うのでデフォルト名で保存)

通常利用の場合

image.png

基本的に通常のWinSCPと同じように、左右のペインのファイル移動でアップロード/ダウンロードができる
※注意点として、/<ルート> でディレクトリを操作するとバケットが操作できるので注意が必要
/<ルート> でディレクトリを作成すると、バケットが作成される
/<ルート> でディレクトリを削除すると、バケットが削除される
/<ルート> でディレクトリをリネームすると、バケットが別名で生成され、内容がコピーされ、元のパケットが削除される
そのため、バケットの操作はポリシーできちんと縛っておかないと事故のもとになるので注意が必要

WinSCPのコマンドラインからS3にファイルをアップロードする

コマンドラインからバケットにアップロードするには、以下のコマンド、
s3cmdやawscliでインタプリタを別途インストールしたりする必要がないので非常に楽です。
s3をftpみたいな感覚で扱える点が素晴らしい!!

以下のようにすると、セッションに登録されているバケットにアップロードされる

winscp.exe <アクセスキー>@s3.amazonaws.com /upload <ドライブ:\パス\ファイル名> /defaults

さいごに

WindowsのS3のGUIクライアントは有料のものが多く、手軽に扱えるものが少なかったので、WinSCPがS3に対応したのは非常に良かったと思います。

28
31
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
28
31