使用用戶端傳輸檔案 - AWS Transfer Family

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用用戶端傳輸檔案

您通過傳輸文件AWS Transfer Family通過在客戶端中指定傳輸操作來服務。AWS Transfer Family支援下列用戶端:

  • 我們支援 SFTP 通訊協定的第 3 版。

  • OpenSSH (macOS 和 Linux)

    注意

    此用戶端僅限啟用安全殼層 (SSH) 檔案傳輸通訊協定 (SFTP) 的伺服器。

  • WinSCP (僅限 Microsoft Windows)

  • 網路鴨 (Windows、macOS 和 Linux)

  • FileZilla (Windows、macOS 和 Linux)

下列限制適用於每個用戶端:

  • Amazon S3 和亞馬遜 EFS(由於 NFSv4 協議)要求文件名使用 UTF-8 編碼。使用不同的編碼可能會導致非預期的結果。對於 Amazon S3,請參閱物件金鑰命名準則

  • 對於透過 SSL 的檔案傳輸通訊協定 (FTPS),僅支援「明確」模式。不支援隱含模式。

  • 對於檔案傳輸通訊協定 (FTP) 和 FTPS,僅支援被動模式。

  • 對於 FTP 和 FTPS,僅支援串流模式。

  • 對於 FTP 和 FTPS,僅支援影像/二進位模式。

  • 對於 FTP 和 FTPS,資料連線的 TLS-PROT C (未受保護) TLS 為預設值,但是AWS Transfer FamilyFTPS 通訊協定。因此,對於 FTPS,您需要發出 PROT P 以便接受數據操作。

  • 如果您將 Amazon S3 用於伺服器儲存,並且客戶端包含使用多個連接進行單一傳輸的選項,請務必停用該選項。否則,大型文件上傳可能會以不可預知的方式失敗。請注意,如果您使用 Amazon EFS 做為儲存後端,請使用 EFS支持單次傳輸的多個連接。

以下是 FTP 和 FTPS 的可用命令列表:

可用命令

憎惡

功績

MLST

通過

廢棄

斯特

AUTH

LANG

MKD

帕斯夫

RMD

斯托

增殖器官

LIST

MODE

PBSZ

RNFR

STRU

CWD

MDTM

NLST

PROT

RNTO

系統

德勒

MFMT

NOOP

PWD

SIZE

TYPE

EPSV

MLSD

選擇

結束

統計

USER

注意

不支援 APPE。

對於 SFTP,在使用 Amazon 彈性檔案系統 (Amazon EFS) 的伺服器上使用邏輯主目錄的使用者,目前不支援下列操作。

不支援的 SFTP 命令

讀取連結

符號鏈接

當請求的文件是符號鏈接時,SSH_FXP_STAT

SSH_FXP_REALPATH 當請求的路徑包含任何符號鏈接組件

產生公有-私有 key pair

您必須擁有可用的公開-私 key pair,才能傳輸檔案。如果您之前尚未產生 key pair,請參閱產生 SSH 金鑰

避免setstat錯誤

某些 SFTP 檔案傳輸用戶端可以在上傳檔案時,使用 SETSTAT 等命令來嘗試變更遠端檔案的屬性 (包括時間戳記和許可)。不過,這些命令與 Amazon S3 等物件儲存系統並不相容。由於這種不相容性,即使已成功上傳檔案,從這些用戶端上傳檔案也可能導致錯誤。

  • 當您呼叫CreateServer或者UpdateServer應用程式介面,使用ProtocolDetails選項SetStatOption忽略在用戶端嘗試對您上傳至 S3 儲存貯體的檔案使用 SETSTAT 時所產生的錯誤。

  • 將值設定為 ENABLE_NO_OP,讓 Transfer 系列伺服器忽略 SETSTAT 命令,並上傳檔案,而不需要對 SFTP 用戶端進行任何變更。

  • 請注意,雖然SetStatOption ENABLE_NO_OP設置忽略錯誤,它生成一個日誌條目 CloudWatch 記錄檔,以便您可以判斷用戶端何時進行 SETSTAT 呼叫。

如需此選項的 API 詳細資訊,請參閱ProtocolDetails

OpenSSH

使用下列說明使用 OpenSSH 從命令列傳輸檔案。

注意

此用戶端僅適用於啟用 SFTP 的伺服器。

使用 OpenSSH 命令列公用程式透過 AWS Transfer Family 傳輸檔案

  1. 在 Linux、macOS 或 Windows 上,開啟命令終端。

  2. 出現提示時,輸入下列命令:

    sftp -i transfer-key sftp_user@service_endpoint

    在前面的命令中,sftp_user 是使用者名稱,而 transfer-key 是 SSH 私有金鑰。在這裡service_endpoint是伺服器的端點,如AWS Transfer Family所選伺服器的主控台。

    應會出現 sftp 提示。

  3. (選用) 若要檢視使用者的主目錄,請在sftp提示:

    pwd

  4. 若要將檔案從檔案系統上傳至轉移系列伺服器,請使用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,您可以直接連接到 Amazon S3 使用AWS憑據和上傳/下載文件。如需詳細資訊,請參閱連線至 Amazon S3 服務

使用 WinSCP 透過 AWS Transfer Family 傳輸檔案

  1. 開啟 WinSCP 用戶端。

  2. 登入對話方塊,對話方塊檔案通訊協定」中,選擇一個通訊協定:SFTP或者FTP

    如果您選擇 FTP,用於Encryption (加密),選擇下列其中一個項目:

    • 沒有加密對於 FTP

    • TLS/SSL 顯式加密適用於富時計劃

  3. 針對 Host name (主機名稱),輸入您的伺服器端點。伺服器端點位於Server 詳細資訊頁面上,請參閱檢視伺服器詳情

  4. 對於連接埠號碼中,輸入下列內容:

    • 22對於 SFTP

    • 21適用於 FTP/FTPS

  5. 對於使用者名稱」中,輸入您為特定身分識別提供者建立的使用者名稱。

    注意

    使用者名稱應該是您為身分識別提供者建立或設定的使用者之一。AWS Transfer Family提供下列身分提供者:

  6. 選擇進階以開啟進階網站設定對話方塊。在SSH區段中,選擇身分驗證

  7. 對於私密金鑰檔案」中,瀏覽並從檔案系統中選擇 SSH 私密金鑰檔案。

    注意

    如果 WinSCP 提供將您的安全殼層私密金鑰轉換為 PPK 格式,請選擇OK

  8. 選擇 OK (確定) 返回 Login (登入) 對話方塊,然後選擇 Save (儲存)

  9. 將工作階段儲存為網站對話方塊,選擇OK完成您的連線設定。

  10. 登入對話方塊,選擇工具,然後選擇偏好

  11. 偏好對話方塊,對話方塊Transfer,選擇耐力

    對於啟用傳輸恢復/傳輸到臨時文件名選項,選擇停用

    注意

    如果您將此選項保持啟用狀態,則會增加上傳成本,從而大幅降低上傳效能。它也可能導致大文件上傳失敗。

  12. 對於Transfer,選擇背景介紹,並清除使用多個連接進行單次傳輸核取方塊。

    注意

    如果您保持選取此選項,則大型檔案上傳可能會以無法預期的方式失敗。例如,可以建立產生 Amazon S3 費用的孤立分段上傳。也可能發生無訊息資料損毀。

  13. 執行檔案傳輸。

    您可以使用 drag-and-drop 在目標視窗和來源視窗之間複製檔案的方法。您可以使用工具列圖示來上傳、下載、刪除、編輯或修改 WinSCP 中檔案的屬性。

注意

如果您使用 Amazon EFS 進行儲存,則此注意事項不適用。

嘗試變更遠端檔案屬性 (包括時間戳記) 的命令與 Amazon S3 等物件儲存系統並不相容。因此,如果您使用 Amazon S3 進行儲存,請務必停用 WinSCP 時間戳記設定 (或使用SetStatOption如中所述避免setstat錯誤),然後再執行檔案傳輸。若要這樣做,在中使用WinSCP 傳輸設定」對話方塊中,停用設定許可上傳選項和保留時間戳記常見的選項。

使用

使用下列說明使用 Cyberduck 從命令列傳輸檔案。

使用 Cyberduck 透過 AWS Transfer Family 傳輸檔案

  1. 開啟數碼鴨用戶端

  2. 選擇開啟連線

  3. 開啟連線」對話方塊中,選擇通訊協定:SFTP (SSH 檔案傳輸通訊協定)FTP 伺服器 (顯式驗證 TLS),或FTP (檔案傳輸通訊協定)

  4. 對於伺服器,輸入您的伺服器端點。伺服器端點位於Server 詳細資訊頁面。如需詳細資訊,請參閱 檢視伺服器詳情

  5. 對於連接埠號碼中,輸入下列內容:

    • 22對於 SFTP

    • 21適用於 FTP/FTPS

  6. 針對 Username (使用者名稱),輸入您在管理使用者中建立的使用者名稱。

  7. 如果選取了 SFTP,則用於SSH 私密金鑰」中,選擇或輸入 SSH 私密金鑰。

  8. 選擇 Connect (連線)。

  9. 執行檔案傳輸。

    根據檔案所在位置,執行以下其中一項:

    • 在本機目錄 (來源) 中,選擇要傳輸的檔案,然後將檔案拖放到 Amazon S3 目錄 (目標)。

    • 在 Amazon S3 目錄 (來源) 中,選擇要傳輸的檔案,然後將檔案拖放到本機目錄 (目標) 中。

使用 FileZilla

使用以下說明傳輸文件 FileZilla。

設定 FileZilla 對於檔案傳輸

  1. 開啟 FileZilla 用戶端

  2. 選擇檔案,然後選擇網站經理

  3. 網站經理對話方塊,選擇新增網站

  4. 在「」將軍標籤協議」中,選擇一個通訊協定:SFTP或者FTP

    如果您選擇 FTP,用於Encryption (加密),選擇下列其中一個項目:

    • 只使用普通 FTP(不安全)— 對於 FTP

    • 使用透過 TLS 的明確 FTP (如果有的話)— 適用於 FTPS

  5. 對於主機名稱」下方,輸入您正在使用的通訊協定,接著輸入伺服器端點。伺服器端點位於Server 詳細資訊頁面。如需詳細資訊,請參閱 檢視伺服器詳情

    • 如果您使用的是 SFTP,請輸入:sftp://hostname

    • 如果您使用的是 FTPS,請輸入:ftps://hostname

    確保更換主機名稱與您的實際服務器端點。

  6. 對於連接埠號碼中,輸入下列內容:

    • 22對於 SFTP

    • 21適用於 FTP/FTPS

  7. 如果選取了 SFTP,則用於登入類型,選擇密鑰文件

    對於密鑰文件」中,選擇或輸入 SSH 私密金鑰。

  8. 對於使用者,輸入您在其中建立的使用者名稱管理使用者

  9. 選擇 Connect (連線)。

  10. 執行檔案傳輸。

    注意

    如果您中斷正在進行的檔案傳輸,AWS Transfer Family可能會在 Amazon S3 儲存貯體中的部分物件。如果您中斷上傳,請在繼續之前檢查 Amazon S3 儲存貯體中的檔案大小是否符合來源物件的檔案大小。

使用一個 Perl 客戶端

如果您使用 NET:: SFTP:: 外部 Perl 客戶端,則必須設置queue_size1。例如:

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

注意

修訂版需要此因應措施Net::SFTP::Foreign之前1.92.02

上傳後續階段

您可以檢視上傳後處理資訊,包括 Amazon S3 物件中繼資料和事件通知。

Amazon S3 物件中繼資料

作為對象元數據的一部分,您會看到一個名為的密鑰x-amz-meta-user-agent其值為AWSTransferx-amz-meta-user-agent-id其值為username@server-id。所以此username是上傳檔案的 Transfer Family 使用者server-id是用於上傳的伺服器。此資訊可以使用HeadObject在 Lambda 函數中的 S3 物件上進行操作。

Amazon S3 事件通知

使用傳 Transfer Family 列將物件上傳到 S3 儲存貯體時,RoleSessionName包含在「請求者」欄位中S3 事件通知結構[AWS:Role Unique Identifier]/username.sessionid@server-id。例如,以下是複製到 S3 儲存貯體之檔案的 S3 存取日誌中範例請求者欄位的內容。

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

在上面的「請求者」字段中,它顯示了名為的 IAM 角色IamRoleName。如需設定 S3 事件通知的詳細資訊,請參閱設定 Amazon S3 事件通知Amazon Storage Service 開發人員指南。如需的詳細資訊AWS Identity and Access Management(IAM) 角色唯一識別碼,請參閱唯一識別碼AWS Identity and Access Management使用者指南