Sample code for 30+ languages & platforms
CkPython

Write Text at a 64-bit Offset in a Remote SFTP File

See more SFTP Examples

Demonstrates the Chilkat SFtp.WriteFileText64 method, which encodes text and writes it at a specific 64-bit byte offset in an open handle. The arguments are the handle, the offset, the charset, and the text. The 64-bit offset supports very large files.

Background: A 32-bit offset tops out at about 4 GB, so files larger than that require the 64-bit form to address positions beyond that boundary. The behavior is otherwise identical to the 32-bit version — the only difference is the width of the offset argument, chosen to match the size of the file you are working with.

Chilkat CkPython Downloads

CkPython
import sys
import chilkat

success = False

#  Demonstrates the SFtp.WriteFileText64 method, which encodes text and writes it at a specific
#  64-bit byte offset in an open handle.  The 1st argument is the handle, the 2nd is the offset,
#  the 3rd is the charset, and the 4th is the text.  The 64-bit offset supports very large files.

sftp = chilkat.CkSFtp()

#  Connect, authenticate, and initialize the SFTP subsystem.
port = 22
success = sftp.Connect("sftp.example.com",port)
if (success == False):
    print(sftp.lastErrorText())
    sys.exit()

#  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.
password = "mySshPassword"

success = sftp.AuthenticatePw("mySshLogin",password)
if (success == False):
    print(sftp.lastErrorText())
    sys.exit()

success = sftp.InitializeSftp()
if (success == False):
    print(sftp.lastErrorText())
    sys.exit()

handle = sftp.openFile("subdir/hugefile.dat","readWrite","openOrCreate")
if (sftp.get_LastMethodSuccess() == False):
    print(sftp.lastErrorText())
    sys.exit()

#  Write at a byte offset beyond the 32-bit (4 GB) range.
offset = 5000000000
success = sftp.WriteFileText64(handle,offset,"utf-8","MARKER")
if (success == False):
    print(sftp.lastErrorText())
    sys.exit()

success = sftp.CloseHandle(handle)
if (success == False):
    print(sftp.lastErrorText())
    sys.exit()

print("Wrote at the 64-bit offset.")

sftp.Disconnect()