DataFlex
DataFlex
Pre-Allocate Server Space Before an FTP Upload (ALLO)
See more FTP Examples
Demonstrates the AllocateSize property, which sends the FTP ALLO command to pre-allocate disk space on the server before an upload. Set it to the size in bytes of the file about to be uploaded.
Background:
ALLO asks the server to reserve storage in advance, a requirement of certain legacy systems — older mainframes in particular — that need the exact file size up front to allocate a dataset. Modern servers allocate space dynamically and typically ignore or accept ALLO without needing it, so most applications never set this. Provide it only when targeting a host known to require pre-allocation.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoFtp
String sTemp1
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"
// 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
// AllocateSize sends the FTP ALLO command to pre-allocate disk space on the server before an
// upload. It is rarely needed -- mainly for certain legacy systems that require the exact size
// in advance -- since most servers allocate space dynamically. Set it to the size in bytes of
// the file about to be uploaded.
ERROR: Assignment type mismatch. ExpressionType=int, atgType=uint
Get ComPutFile Of hoFtp "qa_data/bigfile.zip" "uploads/bigfile.zip" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Uploaded with pre-allocation."
Get ComDisconnect Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
End_Procedure