All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mockftpserver.fake.command.StouCommandHandler Maven / Gradle / Ivy

/*
 * Copyright 2008 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.mockftpserver.fake.command;

import org.mockftpserver.core.command.Command;

/**
 * CommandHandler for the STOU command. Handler logic:
 * 
    *
  1. If the user has not logged in, then reply with 530 and terminate
  2. *
  3. Create new unique filename within the current directory
  4. *
  5. If the current user does not have write access to the named file, if it already exists, or else to its * parent directory, then reply with 553 and terminate
  6. *
  7. If the current user does not have execute access to the parent directory, then reply with 553 and terminate
  8. *
  9. Send an initial reply of 150
  10. *
  11. Read all available bytes from the data connection and write out to the unique file in the server file system
  12. *
  13. If file write/store fails, then reply with 553 and terminate
  14. *
  15. Send a final reply with 226, along with the new unique filename
  16. *
* * @author Chris Mair * @version $Revision: 201 $ - $Date: 2008-12-11 19:39:48 -0500 (Thu, 11 Dec 2008) $ */ public class StouCommandHandler extends AbstractStoreFileCommandHandler { /** * @return the message key for the reply message sent with the final (226) reply */ protected String getMessageKey() { return "stou"; } /** * Return the path (absolute or relative) for the output file. */ protected String getOutputFile(Command command) { String baseName = defaultIfNullOrEmpty(command.getOptionalString(0), "Temp"); String suffix = Long.toString(System.currentTimeMillis()); return baseName + suffix; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy