MCPcopy Create free account
hub / github.com/BitVM/BitVM / get_object

Function get_object

bridge/src/client/data_store/ftp/lib.rs:149–209  ·  view source on GitHub ↗
(
    credentials: &FtpCredentials,
    file_name: &str,
    file_path: Option<&str>,
)

Source from the content-addressed store, hash-verified

147}
148
149async 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)),

Callers 2

fetch_objectFunction · 0.85
fetch_compressed_objectFunction · 0.85

Calls 4

secure_connectFunction · 0.85
insecure_connectFunction · 0.85
change_directoryFunction · 0.70
disconnectFunction · 0.70

Tested by

no test coverage detected