このトピックでは、ossftp に関するよくある質問への回答を示します。
FTP サーバーへの接続失敗
-
現象
注:サーバーへの接続に失敗した際に返されるエラーメッセージです。
Response: 331 Username ok, send password. Command: PASS *************************** Response: 530 Can't list buckets, check your access_key.request_id:569db7b4aec9a1c34e0aaaff, status:403, code:accessdenied, message:accessdenied Error: Critical error: Cannot connect to server -
原因
-
AccessKey ID または AccessKey Secret が正しくありません。
-
AccessKey ペアに関連付けられた RAM ユーザーに、OSS へのアクセスに必要な権限がありません。
-
-
解決策
-
正しい AccessKey ID と AccessKey Secret を入力し、再度サーバーに接続してください。
-
ユースケースに基づいて、RAM ユーザーに必要な権限を付与してください。
以下のセクションでは、一般的なシナリオにおける RAM ユーザーに必要な権限について説明します。
-
OSS バケット内のオブジェクトへの読み取り専用アクセス
必要な権限:
oss:ListObjectsおよびoss:GetObject -
OSS バケットへのデータ書き込み
必要な権限:
oss:ListObjectsおよびoss:PutObject -
バケットからのデータ削除
必要な権限:
oss:ListObjectsおよびoss:DeleteObject
その他のシナリオで RAM ユーザーに権限を付与する方法の詳細については、「RAM ポリシーの一般的な例」をご参照ください。
-
-
FileZilla を使用した FTP サーバー接続時の 501 エラー
-
現象
Linux で FTP サーバーを実行し、FileZilla を使用してサーバーに接続すると、501 エラーが発生します。
501 can't decode path (server filesystem encoding is ANSI_X3.4-1968) -
原因
中国語の文字が正しくエンコーディングされていません。
-
解決策
-
start.sh スクリプトを実行するターミナルで、次のコマンドを実行してください:
$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale -
FileZilla を再起動します。
-
ossftp ログイン後、オブジェクト一覧表示時のタイムアウトによる切断
バケットのルートディレクトリに大量のオブジェクトとディレクトリが保存されています。ossftp にログインすると、FTP サーバーはバケットのルートディレクトリ内のすべてのオブジェクトとディレクトリを一覧表示しようとします。一度に最大 1,000 個のオブジェクトとディレクトリを一覧表示できます。ルートディレクトリに 100 万個を超えるオブジェクトとディレクトリが保存されている場合、オブジェクトとディレクトリを一覧表示するために 1,000 件を超えるリクエストが送信されるため、タイムアウトが発生します。
データ転送の失敗
-
原因
FTP サーバーのコントロールポートとデータポートは異なります。FTP サーバーがパッシブモードでデータを転送する必要がある場合、ポートがランダムに選択され、クライアントからの接続用に有効化されます。FTP サーバーを実行するマシンにポート制限がある場合、データ転送が失敗する可能性があります。
-
解決策
ftpserver.pyを実行する際は、--passive_ports_start オプションと --passive_ports_end オプションを使用してポート範囲を定義します。次に、この範囲のポートが開いていることを確認します。
クライアントと FTP サーバー間の頻繁な切断
-
原因
クライアントと FTP サーバー間の接続がタイムアウトします。
-
解決策
クライアントと FTP サーバー間の接続がタイムアウトしないように設定してください。 たとえば、FileZilla で を選択し、タイムアウト期間を 0 に設定してください。