sftp = Net::SFTP.open(...)
sftp.upload!("local/file 2025-10-27.zip", "remote/file 2025-10-27.zip")
raises Net::SFTP::StatusException: (3, "permission denied").
After converting the space to a dash worked, so I think it's because it's being interpreted as an additional filename. The upload! command seems to imply a 1:1 upload of a single file, so perhaps the filename can be quoted when it's sent to the server.