(
credentials: &FtpCredentials,
file_name: &str,
file_path: Option<&str>,
)
| 147 | } |
| 148 | |
| 149 | async fn get_object( |
| 150 | credentials: &FtpCredentials, |
| 151 | file_name: &str, |
| 152 | file_path: Option<&str>, |
| 153 | ) -> Result<Vec<u8>, String> { |
| 154 | let mut buffer: Vec<u8> = vec![]; |
| 155 | |
| 156 | if credentials.is_secure { |
| 157 | match secure_connect(credentials).await { |
| 158 | Ok(mut ftp_stream) => { |
| 159 | match change_directory(None, Some(&mut ftp_stream), file_path).await { |
| 160 | Ok(_) => match ftp_stream.retr_as_stream(file_name).await { |
| 161 | Ok(mut reader) => match reader.read_to_end(&mut buffer).await { |
| 162 | Ok(_) => { |
| 163 | let _ = ftp_stream.finalize_retr_stream(reader).await; |
| 164 | disconnect(None, Some(&mut ftp_stream)).await; |
| 165 | Ok(buffer) |
| 166 | } |
| 167 | Err(err) => { |
| 168 | disconnect(None, Some(&mut ftp_stream)).await; |
| 169 | Err(format!("Unable to get {}: {}", file_name, err)) |
| 170 | } |
| 171 | }, |
| 172 | Err(err) => { |
| 173 | disconnect(None, Some(&mut ftp_stream)).await; |
| 174 | Err(format!("Unable to get {}: {}", file_name, err)) |
| 175 | } |
| 176 | }, |
| 177 | Err(err) => Err(format!("Unable to get {}: {}", file_name, err)), |
| 178 | } |
| 179 | } |
| 180 | Err(err) => Err(format!("Unable to get {}: {}", file_name, err)), |
| 181 | } |
| 182 | } else { |
| 183 | match insecure_connect(credentials).await { |
| 184 | Ok(mut ftp_stream) => { |
| 185 | match change_directory(Some(&mut ftp_stream), None, file_path).await { |
| 186 | Ok(_) => match ftp_stream.retr_as_stream(file_name).await { |
| 187 | Ok(mut reader) => match reader.read_to_end(&mut buffer).await { |
| 188 | Ok(_) => { |
| 189 | let _ = ftp_stream.finalize_retr_stream(reader).await; |
| 190 | disconnect(Some(&mut ftp_stream), None).await; |
| 191 | Ok(buffer) |
| 192 | } |
| 193 | Err(err) => { |
| 194 | disconnect(Some(&mut ftp_stream), None).await; |
| 195 | Err(format!("Unable to get {}: {}", file_name, err)) |
| 196 | } |
| 197 | }, |
| 198 | Err(err) => { |
| 199 | disconnect(Some(&mut ftp_stream), None).await; |
| 200 | Err(format!("Unable to get {}: {}", file_name, err)) |
| 201 | } |
| 202 | }, |
| 203 | Err(err) => Err(format!("Unable to get {}: {}", file_name, err)), |
| 204 | } |
| 205 | } |
| 206 | Err(err) => Err(format!("Unable to get {}: {}", file_name, err)), |
no test coverage detected