クライアントを使用してファイルを転送する - AWS Transfer Family

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クライアントを使用してファイルを転送する

クライアント内で転送オペレーションを指定して AWS Transfer Family サービス経由でファイルを転送します。AWS Transfer Family は次のクライアントをサポートします。

  • SFTP プロトコルのバージョン 3 をサポートしています。

  • OpenSSH (macOS および Linux)

    注記

    このクライアントは、Secure Shell (SSH) File Transfer Protocol (SFTP) が有効なサーバーとの組み合わせでのみ機能します。

  • WinSCP (Microsoft Windows のみ)

  • Cyberduck (Windows、macOS、および Linux)

  • FileZilla (Windows、macOS、Linux)

どのクライアントにも以下の制限が適用されます。

  • Amazon S3 と Amazon EFS (NFSv4 プロトコルのため) では、ファイル名を UTF-8 エンコーディングにする必要があります。異なるエンコーディングを使用すると、予期しない結果になる可能性があります。Amazon S3 については、「」を参照してください。オブジェクトキーの命名のガイドライン

  • File Transfer Protocol over SSL (FTPS) については、明示モードのみがサポートされます。暗黙モードはサポートされません。

  • FTP および FTPS では、パッシブモードのみがサポートされます。

  • FTP および FTPS では、STREAM モードのみがサポートされます。

  • FTP および FTPS では、イメージ/バイナリモードのみがサポートされます。

  • FTP および FTPS の場合、データ接続の TLS-PROT C (非保護) TLS がデフォルトですが、PROT C は AWS Transfer Family プロトコルでサポートされません。したがって、FTPS の場合、データオペレーションを受け入れるには PROT P を発行する必要があります。

  • サーバーのストレージに Amazon S3 を使用していて、クライアントに 1 回の転送で複数の接続を使用するオプションがある場合は、そのオプションを必ず無効にしてください。そうしないと、大容量ファイルのアップロードが失敗して予測外の状況になる可能性があります。Amazon EFS をストレージバックエンドとして使用している場合、EFS に注意してくださいする1回の転送で複数の接続をサポートします。

以下に示すのは、FTP および FTPS で使用できるコマンドの一覧です。

使用できるコマンド

ABOR

FEAT

MLST

PASS

RETR

STOR

AUTH

LANG

MKD

PASV

RMD

STOU

CDUP

LIST

MODE

PBSZ

RNFR

STRU

CWD

MDTM

NLST

PROT

RNTO

SYST

DELE

MFMT

NOOP

PWD

SIZE

TYPE

EPSV

MLSD

OPTS

QUIT

STAT

USER

注記

APPE はサポートされません。

SFTP については、Amazon Elastic File System (Amazon EFS) を使用しているサーバーで論理ホームディレクトリを使用するユーザーの場合、現時点で以下のオペレーションはサポートされていません。

サポートされない SFTP コマンド

SSH_FXP_READLINK

SSH_FXP_SYMLINK

リクエストされたファイルがシンボリックリンクの場合、SSH_FXP_STAT

リクエストされたパスにシンボリックリンクコンポーネントが含まれている場合、SSH_FXP_REALPATH

パブリックキーとプライベートキーのペアを生成する

ファイルを転送する前に、パブリックキーとプライベートキーのキーペアを用意する必要があります。以前にキーペアを生成していない場合、「SSH キーを生成する」を参照してください。

避けるsetstatエラー

SFTP ファイル転送クライアントの中には、ファイルのアップロード時に SETSTAT などのコマンドを使用して、タイムスタンプや権限などのリモートファイルの属性を変更しようとするものがあります。ただし、これらのコマンドは Amazon S3 などのオブジェクトストレージシステムと互換性がありません。この非互換性が原因で、これらのクライアントからファイルをアップロードする際に、ファイルが正常にアップロードされた場合でもエラーが発生する可能性があります。

  • あなたが電話するときCreateServerまたはUpdateServerAPI、使ってProtocolDetailsオプションSetStatOptionS3 バケットにアップロードするファイルに対してクライアントが SETSTAT を使用しようとしたときに生成されるエラーを無視します。

  • Transfer Family サーバーが SETSTAT コマンドを無視するように値を ENABLE_NO_OP に設定し、SFTP クライアントに変更を加えることなくファイルをアップロードできます。

  • ただし、SetStatOption ENABLE_NO_OP設定はエラーを無視します、それするでログエントリを生成 CloudWatch ログに記録して、クライアントがいつSETSTAT呼び出しを行っているかを判断できます。

このオプションの API の詳細については、ProtocolDetails

OpenSSH を使用する

次の手順に従って、OpenSSH を使用してコマンドラインからファイルを転送します。

注記

このクライアントは SFTP 対応サーバーでのみ動作します。

OpenSSH コマンドラインユーティリティを使用して AWS Transfer Family 経由でファイルを転送するには

  1. Linux または Macintosh の場合、コマンドターミナルを開きます。

  2. プロンプトで、次のコマンドを入力します。

    sftp -i transfer-key sftp_user@service_endpoint

    前述のコマンドでは、sftp_user がユーザー名、transfer-key が SSH プライベートキーです。ここでは、選択したサーバーの service_endpoint コンソールに示されるとおり、AWS Transfer Family がサーバーのエンドポイントです。

    sftp プロンプトが表示されます。

  3. (オプション) ユーザーのホームディレクトリを表示するには、sftp プロンプトで次のコマントを入力します。

    pwd

  4. ご使用のファイルシステムから Transfer Family サーバーにファイルをアップロードするには、put コマンドを使用します。たとえば、hello.txt をアップロードするには (ファイルがファイルシステム上のカレントディレクトリにあると仮定して)、sftp プロンプトで次のコマンドを実行します。

    put hello.txt

    ファイル転送が進行中か完了したことを示す次のようなメッセージが表示されます。

    Uploading hello.txt to /my-bucket/home/sftp_user/hello.txt

    hello.txt 100% 127 0.1KB/s 00:00

注記

サーバーの作成後、お使いの環境の DNS サービスによってサーバーエンドポイントのホスト名が解決可能になるまでに数分かかることがあります。

WinSCP を使用する

次の手順に従って、WinSCP を使用してコマンドラインからファイルを転送します。

注記

WinSCP 5.19 を使用する場合、AWS 認証情報で Amazon S3 に直接接続してファイルのアップロード/ダウンロードが可能です。詳細については、「Amazon S3 サービスに接続する」を参照してください。

WinSCP を使用して AWS Transfer Family でファイルを転送するには

  1. WinSCP クライアントを開きます。

  2. の中にログインダイアログボックス、用ファイルプロトコルで、プロトコルを選択してください。SFTPPまたはFTP

    [FTP] を選択した場合、[Encryption] (暗号化) で次のいずれかを選択します。

    • FTP の場合、暗号化なし

    • FTPS の場合、TLS/SSL 明示的な暗号化

  3. [Host name] (ホスト名) にサーバーエンドポイントを入力します。サーバーエンドポイントは [Server details] (サーバーの詳細) ページにあります。「サーバーの詳細を表示する」を参照してください。

  4. [Port number] (ポート番号) に次の値を入力します。

    • SFTP の場合、22

    • FTP/FTPS の場合、21

  5. にとってユーザー名に、特定の ID プロバイダー用に作成したユーザーの名前を入力します。

    注記

    ユーザー名は、ID プロバイダー用に作成または設定したユーザーのいずれかである必要があります。AWS Transfer Familyには次のアイデンティティプロバイダーがあります。

  6. [Advanced] (アドバンスト) を選択して、[Advanced Site Settings] (サイトのアドバンスト設定) ダイアログボックスを開きます。[SSH] セクションで [Authentication] (認証) を選択します。

  7. [Private key file] (プライベートキーファイル) でファイルシステムから SSH プライベートキーを参照して選択します。

    注記

    WinSCP から SSH プライベートキーを PPK 形式に変換するオプションが表示されたら [OK] を選択します。

  8. [OK] を選択して [Login] (ログイン) ダイアログボックスに戻り、[Save] (保存) を選択します。

  9. [Save session as site] (セッションをサイトとして保存) ダイアログボックスで [OK] を選択して接続セットアップを完了します。

  10. [Login] (ログイン) ダイアログボックスで [Tools] (ツール) を選択してから[Preferences] (設定) を選択します。

  11. [Preferences] (設定) ダイアログボックスの [Transfer] (転送) で [Endurance] (耐久性) を選択します。

    [Enable transfer resume/transfer to temporary filename for] オプションについて [Disable] (無効にする) を選択します。

    注記

    このオプションを有効にしたままにすると、アップロードコストが増加し、アップロードのパフォーマンスが大幅に低下します。大容量ファイルのアップロードが失敗する可能性もあります。

  12. [Transfer] (転送) で [Background] (バックグラウンド) を選択し、[Use multiple connections for single transfer] (単一の転送に複数の接続を使用する) チェックボックスをオフにします。

    注記

    このオプションを選択したままにすると、大容量ファイルのアップロードが失敗して予測外の状況になる可能性があります。たとえば、孤立マルチパートアップロードが生成されて Amazon S3 の料金が発生する可能性があります。サイレントデータ破損が発生することもあります。

  13. ファイル転送を実行します。

    以下を使用できます。 drag-and-drop ターゲットとコピー元のウィンドウ間でファイルをコピーする方法。ツールバーアイコンを使用して、WinSCP にあるファイルのプロパティをアップロード/ダウンロード、削除、編集、または変更できます。

注記

ストレージに Amazon EFS を使用している場合は、この注意事項は適用されません。

タイムスタンプを含むリモートファイルの属性を変更しようとするコマンドは、Amazon S3 などのオブジェクトストレージシステムとは互換性がありません。したがって、Amazon S3 をストレージに使用している場合は、WinSCP タイムスタンプ設定を必ず無効にしてください。SetStatOptionで説明されているとおり避けるsetstatエラー) ファイル転送を実行する前に。そのためには、WinSCP Transfer settings (WinSCP 転送設定) ダイアログボックスで [Set permissions] (パーミッションの設定) オプションと [Preserve timestamp] (タイムスタンプを保持) オプションを無効にします。

Cyberduck を使用する

次の手順に従って、Cyberduck を使用してコマンドラインからファイルを転送します。

Cyberduck を使用して AWS Transfer Family でファイルを転送するには

  1. Cyberduck クライアントを開きます。

  2. [Open connection] (接続を開く) を選択します。

  3. の中にOpen 接続ダイアログボックスで、プロトコルを選択します。SFTP (SSH ファイル転送プロトコル),FTP-SSL (明示的認証 TLS)、またはFile Transfer Protocol

  4. [Servers] (サーバー) にサーバーのエンドポイントを入力します。サーバーエンドポイントは、[Server details] (サーバーの詳細) ページにあります 。詳細については、「サーバーの詳細を表示する」を参照してください。

  5. [Port number] (ポート番号) に次の値を入力します。

    • SFTP の場合、22

    • FTP/FTPS の場合、21

  6. [Username] (ユーザー名) に ユーザーの管理 で作成したユーザーの名前を入力します。

  7. SFTP を選択した場合、[SSH Private Key] (SSH プライベートキー) で SSH プライベートキー] を選択するか入力します。

  8. [Connect] (接続) を選択します。

  9. ファイル転送を実行します。

    ファイルの場所に応じて、次のいずれかの操作をします。

    • ローカルディレクトリ (転送元) で転送したいファイルを選択して Amazon S3 ディレクトリ (転送先) にドラッグアンドドロップします。

    • Amazon S3 ディレクトリ (転送元) で転送したいファイルを選択してローカルディレクトリ (転送先) にドラッグアンドドロップします。

使用アイテム FileZilla

次の手順に従って、を使用してファイルを転送します。 FileZilla。

をセットアップするには FileZilla ファイル転送用

  1. を開きます FileZilla クライアント。

  2. [File] (ファイル) を選択してから [Site Manager] を選択します。

  3. [Site Manager] ダイアログボックスで [New site] (新しいサイト) を選択します。

  4. 上に将軍タブ、用プロトコルで、プロトコルを選択してください。SFTPPまたはFTP

    [FTP] を選択した場合、[Encryption] (暗号化) で次のいずれかを選択します。

    • 平文 FTP のみを使用する (安全でない) — FTP の場合

    • TLS 経由の明示的な FTP を (可能であれば) 使用する — FTPS の場合

  5. [Host name] (ホスト名) には、使用するプロトコルを入力し、その後にサーバーエンドポイントを続けます。サーバーエンドポイントは、[Server details] (サーバーの詳細) ページにあります 。詳細については、「サーバーの詳細を表示する」を参照してください。

    • SFTP を使用する場合、sftp://hostname を入力します。

    • FTPS を使用する場合、ftps://hostname を入力します。

    hostname を実際のサーバーエンドポイントに確実に置き換えてください。

  6. [Port number] (ポート番号) に次の値を入力します。

    • SFTP の場合、22

    • FTP/FTPS の場合、21

  7. [SFTP] を選択した場合、[Logon type] (ログオンの種類) で [Key file] (キーファイル) を選択します。

    [Key file] (キーファイル) で SSH プライベートキーを選択するか入力します。

  8. [Username] (ユーザー名) に、ユーザーの管理 で作成したユーザーの名前を入力します。

  9. [Connect] (接続) を選択します。

  10. ファイル転送を実行します。

    注記

    進行中のファイル転送を中断した場合、AWS Transfer Family が Amazon S3 バケットにオブジェクトの一部を書き込む場合があります。アップロードを中断する場合、続行する前に Amazon S3 バケットのファイルサイズがソースオブジェクトのファイルサイズと一致することを確認してください。

Perl クライアントを使用する

NET። SFTP። 外部の perl クライアントを使用する場合は、を queue_size に設定する必要があります 1。例:

my $sftp = Net::SFTP::Foreign->new('user@s-12345.server.transfer.us-east-2.amazonaws.com', queue_size => 1);

注記

この回避策は、1.92.02 以前の Net::SFTP::Foreign のリビジョンに必要です。

アップロード後の処理

Amazon S3 オブジェクトのメタデータやイベント通知など、アップロード後の処理情報を表示できます。

Amazon S3 オブジェクトメタデータ

オブジェクトのメタデータの一部として、というキーが表示されますx-amz-meta-user-agent誰の価値はAWSTransferそしてx-amz-meta-user-agent-id誰の価値はusername@server-idusername はファイルをアップロードしたTransfer Family ユーザー、server-id はアップロードに使用したサーバーです。この情報には、HeadObjectLambda 関数内の S3 オブジェクトに対するオペレーション。

Amazon S3 イベント通知

Transfer Family を使用してオブジェクトを S3 バケットにアップロードすると、S3 イベント通知構造RoleSessionName が [Requester] (リクエスタ) フィールドに [AWS:Role Unique Identifier]/username.sessionid@server-id として含まれます。たとえば、次に示すのは S3 バケットにコピーされたファイルの S3 アクセスログから得たサンプル [Requester] (リクエスタ) フィールドのコンテンツです。

arn:aws:sts::AWS-Account-ID:assumed-role/IamRoleName/username.sessionid@server-id

上記の [Requester] (リクエスタ) フィールドには、IamRoleName と呼ばれる IAM ロールが表示されます。S3 イベント通知を設定する方法の詳細については、Amazon Simple Storage Service デベロッパーガイドの「Amazon S3 イベント通知の設定」を参照してください。AWS Identity and Access Management (IAM) ロールの一意の識別子の詳細については、AWS Identity and Access Management ユーザーガイドの「一意の識別子」を参照してください。