{
channel = (ChannelSftp) session.openChannel( SFTP_CHANNEL );
channel.connect();
RepositoryPermissions permissions = getRepository().getPermissions();
int directoryMode = getDirectoryMode( permissions );
mkdirs( channel, basedir, directoryMode );
channel.cd( basedir );
mkdirs( channel, resourceName, directoryMode );
firePutStarted( resource, source );
channel.put( source.getAbsolutePath(), filename );
postProcessListeners( resource, source, TransferEvent.REQUEST_PUT );
if ( permissions != null && permissions.getGroup() != null )
{
setGroup( channel, filename, permissions );
}
if ( permissions != null && permissions.getFileMode() != null )
{
setFileMode( channel, filename, permissions );
}
firePutCompleted( resource, source );