DataFlex
DataFlex
Throttle FTP Transfer Bandwidth
See more FTP Examples
Demonstrates the bandwidth properties BandwidthThrottleUp and BandwidthThrottleDown, and the read-only UploadTransferRate and DownloadTransferRate.
Note: The local paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.
Background: Throttling caps the approximate transfer rate in bytes per second (0 means unlimited), which is how a background sync avoids starving interactive traffic on a shared or metered link. The rate properties report the current measured throughput, updated during transfers, so you can display progress or confirm the throttle is taking effect. Treat the limits as approximate targets rather than hard ceilings.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoFtp
String sTemp1
Integer iTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatFtp2)) To hoFtp
If (Not(IsComObjectCreated(hoFtp))) Begin
Send CreateComObject of hoFtp
End
Set ComHostname Of hoFtp To "ftp.example.com"
Set ComUsername Of hoFtp To "myFtpLogin"
// Limit the approximate transfer rate in bytes per second. 0 (the default) means no limit.
// Throttling is useful to avoid saturating a shared link.
Set ComBandwidthThrottleDown Of hoFtp To 1048576
Set ComBandwidthThrottleUp Of hoFtp To 524288
// Normally you would not hard-code the password in source. You should instead obtain it
// from an interactive prompt, environment variable, or a secrets vault.
Set ComPassword Of hoFtp To "myPassword"
Get ComConnect Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComGetFile Of hoFtp "public_html/bigfile.zip" "qa_output/bigfile.zip" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
// The current average rates are updated during transfers.
Get ComDownloadTransferRate Of hoFtp To iTemp1
Showln "Download rate: " iTemp1 " bytes/sec"
Get ComUploadTransferRate Of hoFtp To iTemp1
Showln "Upload rate: " iTemp1 " bytes/sec"
Get ComDisconnect Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
End_Procedure