はじめに
OSS FTP は、一般的な FTP 要求を受信したときにファイルやフォルダに対する操作を OSS インスタンスにマッピングする、特殊な FTP サーバーです。 このユーティリティを使用することで、FTP プロトコルを使用し、OSS インスタンスに保存されているファイルを管理できます。
- 主な機能
- クロスプラットフォーム: Windows、Linux、Mac の 32 ビットおよび 64 ビットの各オペレーティングシステムに対応しており、グラフィックとコマンドラインの両方のインターフェイスで使用できます。
- インストール不要: このユーティリティは展開後にそのまま実行できます。
- 設定不要: さらに設定を行うことなく、ユーティリティを実行できます。
- 透明性: この FTP ユーティリティは Python で記述されているので、すべてのソースコードを見ることができます。 近日中に、GitHub でオープンソースを公開する予定です。
- 主な機能
- ファイルやフォルダのアップロード、ダウンロード、削除などの操作をサポート
- 大きなファイルのマルチパートアップロードをサポート
- ほとんどの FTP コマンドをサポートし、日常のニーズを満たします
注- 現在、インストールと展開を容易にするために、OSS FTP V1.0 は TLS 暗号化をサポートしていません。 FTP プロトコルはプレーンテキスト転送を実装しています。 パスワードの漏洩を防ぐために、FTP サーバーとクライアントを同じマシン上で実行し、127.0.0.1:por を使用してアクセスすることを推奨します。
- このユーティリティは、名前の変更および移動操作をサポートしていません。
- インストールパッケージの extract-to パスには漢字を含めないでください。
- FTP サーバーの管理コントロールページは、初期の IE ブラウザーでは開けない可能性があります。
- サポートされている Pythonのバージョンは Python 2.6 とPython 2.7 です。
ダウンロード
-
Windows: ossftp-1.0.3-win.zip
既定では、Python 2.7 は Windows にインストールされていません。インストールパッケージに含まれているので、インストールや設定の手間がかかることなく、展開後に使用できます。
-
Linux/Mac: ossftp-1.0.3-linux-mac.zip
既定では、Python 2.7 または Python 2.6 は Linux および Mac システムにインストールされています。そのため、Linux および Mac 用のインストールパッケージには実行可能な Python プログラムは含まれておらず、関連する依存ライブラリのみが含まれています。
実行
まず、ダウンロードしたファイルを展開します。 次に、環境条件に基づき、適切な実行モードを選択します。
- Windows: start.vbs をダブルクリックして実行します。
- Linux: ターミナルを起動し、実行します。
$ bash start.sh
- Mac: start.command をダブルクリックするか、またはターミナルで実行します。
$ bash start.command
既定では、上記のプロセスは、127.0.0.1 のポート 2048 をリッスンする FTPサーバー を開始します。 また、FTP サーバーのステータスを簡単に制御できるように、プログラムは Web サーバーをアクティブにします。Web サーバーは 127.0.0.1 でポート 8192 をリッスンします。 システムにグラフィックインターフェイスがある場合は、コントロールページが自動的に開きます。
FTP サーバーへの接続
FileZilla クライアントを使用して FTP サーバーに接続することを推奨します。 ダウンロードしてインストールしたら、次のようにして FTP サーバーに接続します。
- ホスト: 127.0.0.1
- ログオンの種類: 通常
- ユーザー: access_key_id / bucket_name
- パスワード: access_key_secret
注
- スラッシュ記号 (/) は、両方の項目が必須ではないことを意味します。 たとえば、ユーザーは、
tSxyiUM3NKswPMEp/test-hz-jh-002
でもよいです。 - access_key_id および access_key_secret についての詳細は、「OSS アクセス制御」をご参照ください。
- スラッシュ記号 (/) は、両方の項目が必須ではないことを意味します。 たとえば、ユーザーは、
高度な使用方法
- コンソールページから ftpserver を管理
- リスニングアドレスの変更
ネットワーク経由で ftpserver にアクセスする場合は、既定のアドレス 127.0.0.1 ではローカルアクセスしか許可されないため、リスニングアドレスを変更する必要があります。 リスニングアドレスはイントラネット IP またはインターネット IP に変更できます。
- リスニングポートの変更
ftpserver のリスニングポートを変更します。 1024 未満のポートには管理者のアクセス許可が必要なので、1024 を超えるポートを使用することを推奨します。
- ログレベルの変更
ftpserver のログレベルを設定します。 FTP サーバーのログは、
data/ossftp/
ディレクトリに出力されます。 表示するには、コンソールページの [ログ] ボタンをクリックします。 既定のログレベルは INFO になっており、ログにはほとんど情報が記録されません。 より詳細なログ情報が必要な場合は、レベルを DEBUG に変更します。 ログ出力を減らしたい場合は、ログレベルを WARNING または ERROR に設定します。 - バケットエンドポイントの設定
既定では、ftpserver はバケットの位置情報を検索するので、後に続くリクエストを対応するリージョン (
oss-cn-hangzhou.aliyuncs.com
やoss-cn-hangzhou.aliyuncs.com
など) に送信することができます。 まず、ftpserver はイントラネットを介し、 OSS インスタンスへのアクセスを試みます。 たとえば、test-bucket-a.oss-cn-hangzhou.aliyuncs.com
というバケットエンドポイントを設定した場合 、test-bucket-a にアクセスすると、oss-cn-hangzhou.aliyuncs.com
という名前のドメインに接続されます。 - 表示言語の設定
cn / en を設定することで、FTP コントロールページの表示言語を中国語 / 英語に変更できます。
注- 変更を有効にするには、システムを再起動する必要があります。
- 上記の変更はすべて、実際には ftp ディレクトリの config.json ファイルに対する変更です。 したがって、このファイルを直接変更することもできます。
- リスニングアドレスの変更
- ftpserver を直接起動する (Linux / Mac)。
web_server のオーバーヘッドを回避するため、ossftp ディレクトリでのみ、ftpserver.py ファイルを実行できます。
$ python ossftp/ftpserver.py &
設定の変更方法は、上記の方法と同様です。
考えられる問題
- FTP サーバーへの接続時にエラーが発生した場合
エラーは 2 つの原因によって引き起こされている可能性があります。
- 入力された access_key_id または access_key_secret にエラーがある可能性があります。
解決策: 正しい情報を入力してやり直します。
- 使用されている access_key 情報が RAM サブアカウントの access_key であり、そのサブアカウントにはバケットを一覧表示する権限がない。
解決策: サブアカウントを使用するときは、コンソールページでバケットエンドポイントを指定し、特定のバケットへのアクセスに、どのエンドポイントを使用する必要があるかを、ftpserver に指示します。 また、サブアカウントには必要な権限がなければなりません。 OSS にアクセスするため、RAM を使用してアクセス制御を実装する方法については、「RAM」をご参照ください。 アクセス許可に関する詳細は以下のとおりです。
- 読み取り専用:
OSS-FTP には、[‘ListObjects’、’GetObject’、’HeadObject’] の各権限が必要です。 読み取り専用権限で RAM サブアカウントを作成する方法については、グラフィックチュートリアル「ファイル共有のために RAM を統合する方法」をご参照ください。
- ファイルのアップロード
RAM サブアカウントにファイルのアップロードを許可する場合は、['PutObject'] 権限を割り当てます。
- ファイルの削除
RAM サブアカウントにファイルの削除を許可する場合は、 [‘DeleteObject’] 権限を割り当てます。
- 読み取り専用:
- 入力された access_key_id または access_key_secret にエラーがある可能性があります。
- FTP サーバーを Linux 上で実行している場合、FileZilla を使用してサーバーに接続すると、以下のエラーが発生する可能性があります。
501 はパスをデコードできません (サーバーファイルシステムのエンコードは ANSI_X3.4-1968です)。
これは通常、ローカルの中国語のコードでエラーが発生したときに生成されます。 start.sh を実行するターミナルに次のコマンドを入力します。 その後、プログラムを再起動します。
$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale