ProFTPD のデータ転送量を制御するには、TransferRate ディレクティブを使用します。
![]() | 以前のバージョンの ProFTPD では、転送量を制御するディレクティブとして RateRead*、RateWrite* が使用されていましたが、1.2.8rc1 以降、これらのディレクティブは廃止され、TransferRate ディレクティブに集約、変更されています。 |
TransferRate ディレクティブは以下の書式で記述します。
TransferRate [cmds] [kilobytes-per-sec[:free-bytes]] [[user|group|class expression]] |
制御するコマンドを指定します。指定可能なコマンドは、RETR、STOR、STOU、APPE です。複数指定する場合は ,(カンマ)で区切ります。通常、ダウンロードの場合は RETR、アップロードの場合は、STOR,STOU,APPE を指定します。
転送量を KByte/s 単位で指定します。
このパラメータは、kilobytes-per-sec に続けて :1024 のようにコロンを付けて指定します。free-bytes が指定されると、ここで指定したサイズまでは転送量の制限は無視されます。通常、転送量の制限を行うのは、ISO イメージやマルチメディアファイルなどサイズの大きなファイルの転送量を制限することが目的であるため、このパラメータを使用すると、小さなファイルの転送量制限を無視させることができます。
転送量を制御する対象を指定します。 user、group、class いずれの場合でも、続く expression に制御する対象を指定します。例えば、user ftp と指定すれば、ftp ユーザーが対象となります。なお、class は、Class ディレクティブで定義したクラス名を指定します。
以下は、TransferRate ディレクティブの設定例です。この例では、ftp ユーザーの転送量は 10KByte/s に制限されますが、1MByte/s までは、この制限を越える帯域幅でのダウンロードが可能です。
TransferRate RETR 10:1024 user ftp |